C語言的指針
我們在使用c語言進行編寫程序的時候,就一定會使用上指針,指針的操作是編寫程序的一個點。
這里,小編就分享一下自己在使用c語言編程過程中,對于指針的理解:
系統為每一個內存單元分配一個地址值,C/C++把這個地址值稱為“指針”。如有int i=5;,存放變量i的內存單元的編號(地址)&i被稱為指針。
指針變量”則是存放前述“地址值”的變量,也可以表述為,“指針變量”是存放變量所占內存空間“首地址”的變量(因為一個變量通常要占用連續的多個字節空間)。比如在int i=5;后有一句int *p=&i;,就把i的指針&i賦給了int *型指針變量p,也就是說p中存入著&i。所以說指針變量是存放指針的變量。
有一個事實值得注意,那就是有不少資料和教科書并沒有如上區分,而是認為“指針是指針變量的簡稱”,如對int *p=&i;的解釋是:聲明一個int *型指針p,并用變量i的地址初始化;而嚴格說應該是聲明一個int *型指針變量p才對。所以有時看書要根據上下文理解實質,而不能過于拘泥于文字表述。
1:指針是一個地址,指向的是個類型:
我們知道,c語言中的類型有int,char,bool(這個不常用),一般我們使用int,char就可以滿足一般的類型需求的,如果對于變量的長度過大,就是用long ,float,double,關于各個類型使用的的長度問題,可以使用sizeof(int)或者sizeof(long)來查看各個類型,在系統中的小。
而指針就是一個8個字節(64系統)。
2:指針指向的是地址,地址指向的是內容:
我們需要一個變量,來存儲地址,這個變量的值是地址,但是我們可以通過修改變量的值,來不斷的改變地址,但是,我們如果需要改變該個地址的值的話,就需要,對地址的值進行修改,而不改變地址。
int a = 10;
int *p ;
p = &a;
*p =11;
a=?
這里我們看到,p 是一個變量,我們使用p來存儲變量a的地址,這是,我們使用*p對于這個變量進行賦值,那么a的值最后,是多少呢,結果是11,因為我們使用*p賦值,就相當于a=11,賦值效果一樣的。
3:指針的指針,是面對于指針的變量:
我們說,指針的指針的時候,就有點不清楚了,到底怎么區分指針和指針的指針呢。
char *p;
char **pr;
pr = &p;
我們這樣看就清楚了一點,char *(*pr); *pr是一個存儲的值為指針的變量,pr就是存儲上個變量地址的變量。整合起來就是,pr是一個存儲的值為指針的地址的變量。
這樣,我們就基本,對于指針有一個直接的了解了。
【C語言的指針】相關文章:
C語言指針的概念08-20
C語言指針函數和函數指針詳解09-29
C語言的指針類型詳解05-21
如何理解C語言指針05-19
C語言中的指針是什么08-08
如何使用C語言數組指針09-14
C語言復雜指針是什么08-15
C語言中指針的概念03-16
C語言指針知識點10-10
Swift與C語言指針結合使用實例09-21