我們使用這樣的方式來定義一個指針:
Type *p;
我們說
p是指向type類型的指針
,type可以是任意類型,除了可以是char,short, int, long等基本類型外,還可以是指針類型,例如int *, int **, 或者更多級的指針,也可是是結(jié)構(gòu)體,類或者函數(shù)等。于是,我們說:
int * 是指向int類型的指針;int **,也即(int *) *,是指向int *類型的指針,也就是指向指針的指針;int ***,也即(int **) *,是指向int**類型的指針,也就是指向指針的指針的指針;…我想你應(yīng)該懂了
struct xxx *,是指向struct xxx類型的指針;
其實(shí),說這么多,只是希望大家在看到指針的時候,不要被int ***這樣的東西嚇到,就像前面說的,指針就是指向某種類型的指針,我們只看最后一個*號,前面的只不過是type類型罷了。
細(xì)心一點(diǎn)的人應(yīng)該發(fā)現(xiàn)了,在“什么是指針”這一小節(jié)當(dāng)中,已經(jīng)表明了:
指針的長度跟CPU的位數(shù)相等
,大部分的CPU是32位的,因此我們說,
指針的長度是32bit,也就是4個字節(jié)!
注意:任意指針的長度都是4個字節(jié),不管是什么指針?。ó?dāng)然64位機(jī)自己去測一下,應(yīng)該是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ù)
+關(guān)注
關(guān)注
3文章
4401瀏覽量
66480 -
指針
+關(guān)注
關(guān)注
1文章
484瀏覽量
71617
發(fā)布評論請先 登錄
舵機(jī)原理簡述!
函數(shù)指針的六個常見應(yīng)用場景

線束導(dǎo)線長度的定義有哪些?重要嗎?
RTOS中的本地存儲指針使用

如何使用DMA進(jìn)行USART不定長度接收

評論