C語言指針

c語言指針其實(shí)只需要理解兩個(gè)東西就可以了。

1. ? *? 的含義(取值符)

2.? ? &? 的含義(取地址符)


指針的定義:

數(shù)據(jù)類型 *指針變量;? ? ? 例如:int *p;


下面我們來看一下下面的程序:


圖1


運(yùn)行的結(jié)果為:


內(nèi)存地址是系統(tǒng)隨機(jī)分配的(圖2)

我們來看一下計(jì)算機(jī)底層是怎么儲(chǔ)存的:

圖3

下面解釋圖1程序:

第三行,定義一個(gè)int類型的變量a,并將整數(shù)5儲(chǔ)存到變量a中的儲(chǔ)存空間中

第四行,定義一個(gè)指針p,即為指針變量p分配一塊儲(chǔ)存空間(如圖3)

第五行,將指針p指向變量a的物理地址(通俗的話就是指針p的儲(chǔ)存空間中儲(chǔ)存a的物理地址)

第六行,以十六進(jìn)制輸出p,p實(shí)際上就是變量p的儲(chǔ)存空間中的數(shù)據(jù),即62fe44(地址是隨機(jī)分配的)

第七行,以十六進(jìn)制輸出&a,即變量a的物理地址

第八行,以十進(jìn)制輸出a,這個(gè)就不解釋了,你懂的

第九行,以十進(jìn)制輸出*p,*p即表示變量p儲(chǔ)存空間中的物理地址的值(變量a的值)


指針就是操作內(nèi)存的實(shí)際物理地址。

所以理解*與&兩個(gè)符號(hào)的意義就可以了

總結(jié):

1.指針就是用來儲(chǔ)存變量的物理地址,如

int *p;

int a=5;

p=&a;

上面指針變量p就是儲(chǔ)存了變量a的物理地址。

2.變量p前加個(gè)*,即*p,就是變量a中的數(shù)據(jù)5.

3.&符號(hào)是取地址符號(hào),如&a,表示的就是a的物理地址

所以說,指針不難,只要理解*與&的含義就可以了


如果你還沒有完全理解,那就自己多去敲代碼嘗試吧,再多看幾遍,如果你懂了上面的,那么接著看下面的。

下面為擴(kuò)展知識(shí):

既然指針(一重指針)是用來儲(chǔ)存普通變量的地址的,那么指針的物理地址用什么來儲(chǔ)存呢?

答案是:二重指針。

二重指針的定義:

int **p;

在這里你是否又想到了是否有三重指針呢?

答案是:有的。

既然是擴(kuò)展,在此,直接上圖,有興趣的可以去了解。


圖4

運(yùn)行結(jié)果:


結(jié)果僅供參考(圖5)

最后附上計(jì)算機(jī)是如何存儲(chǔ)的原理圖:


圖6


上圖中沒有寫出三重指針 p_pp的地址,如果想知道其地址,只需要寫下面這個(gè)代碼就可以了。

printf("%x",&p_pp);

要理解這個(gè)程序你必須自己去把這個(gè)代碼敲出來,運(yùn)行,然后一點(diǎn)一點(diǎn)的去理解,如果圖4的程序你能理解透徹,說明你對(duì)指針已經(jīng)有深刻的理解了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 指針是C語言中廣泛使用的一種數(shù)據(jù)類型。 運(yùn)用指針編程是C語言最主要的風(fēng)格之一。利用指針變量可以表示各種數(shù)據(jù)結(jié)構(gòu); ...
    朱森閱讀 3,470評(píng)論 3 44
  • 1.語言中變量的實(shí)質(zhì) 要理解C指針,我認(rèn)為一定要理解C中“變量”的存儲(chǔ)實(shí)質(zhì), 所以我就從“變量”這個(gè)東西開始講起吧...
    金巴多閱讀 1,804評(píng)論 0 9
  • 轉(zhuǎn)自CSDN博客 原文鏈接:http://blog.csdn.net/xinyuwuxian/article/de...
    傻彬兒閱讀 761評(píng)論 0 0
  • 前言 最近真的是忙的不可開交,公司一直給安排任務(wù),連學(xué)習(xí)和寫筆記的時(shí)間都沒有了,落下好幾次課的筆記都沒有寫,所以我...
    Xiho丶閱讀 1,542評(píng)論 1 12
  • 前言:指針是 C語言一個(gè)重要概念,也是C 語言的一個(gè)重要特色。使程序簡(jiǎn)潔、緊湊、高效。指針乃是C之精華。 數(shù)據(jù)在內(nèi)...
    瀟湘候晨雪閱讀 776評(píng)論 0 0