我們使用這樣的方式來定義一個指針:
Type *p;
我們說
p是指向type類型的指針
,type可以是任意類型,除了可以是char,short, int, long等基本類型外,還可以是指針類型,例如int *, int **, 或者更多級的指針,也可是是結構體,類或者函數(shù)等。于是,我們說:
int * 是指向int類型的指針;int **,也即(int *) *,是指向int *類型的指針,也就是指向指針的指針;int ***,也即(int **) *,是指向int**類型的指針,也就是指向指針的指針的指針;…我想你應該懂了
struct xxx *,是指向struct xxx類型的指針;
其實,說這么多,只是希望大家在看到指針的時候,不要被int ***這樣的東西嚇到,就像前面說的,指針就是指向某種類型的指針,我們只看最后一個*號,前面的只不過是type類型罷了。
細心一點的人應該發(fā)現(xiàn)了,在“什么是指針”這一小節(jié)當中,已經(jīng)表明了:
指針的長度跟CPU的位數(shù)相等
,大部分的CPU是32位的,因此我們說,
指針的長度是32bit,也就是4個字節(jié)!
注意:任意指針的長度都是4個字節(jié),不管是什么指針!(當然64位機自己去測一下,應該是8個字節(jié)吧。。。)
于是:
Type *p;
izeof(p)的值是4,Type可以是任意類型,char,int, long, struct, class, int **…
以后大家看到什么sizeof(char*), sizeof(int *),sizeof(xxx *),不要理會,統(tǒng)統(tǒng)寫4,只要是指針,長度就是4個字節(jié),絕對不要被type類型迷惑!

-
函數(shù)
+關注
關注
3文章
4374瀏覽量
64417 -
指針
+關注
關注
1文章
484瀏覽量
71076
發(fā)布評論請先 登錄
函數(shù)指針的六個常見應用場景

如何使用DMA進行USART不定長度接收

指針式萬用表功能介紹
指針式萬用表使用指南
指針式萬用表測量精度比較
指針被釋放后就變成了空指針嗎
C語言指針運算符詳解
電流計指針偏轉方向是正極還是負極
C語言指針詳細解析
面試常考+1:函數(shù)指針與指針函數(shù)、數(shù)組指針與指針數(shù)組

簡述指針式萬用表測二極管的方法
面試中的高頻問題:指針函數(shù)與函數(shù)指針,你能完美應對嗎?

評論