我們使用這樣的方式來定義一個(gè)指針:
Type *p;
我們說
p是指向type類型的指針
,type可以是任意類型,除了可以是char,short, int, long等基本類型外,還可以是指針類型,例如int *, int **, 或者更多級(jí)的指針,也可是是結(jié)構(gòu)體,類或者函數(shù)等。于是,我們說:
int * 是指向int類型的指針;int **,也即(int *) *,是指向int *類型的指針,也就是指向指針的指針;int ***,也即(int **) *,是指向int**類型的指針,也就是指向指針的指針的指針;…我想你應(yīng)該懂了
struct xxx *,是指向struct xxx類型的指針;
其實(shí),說這么多,只是希望大家在看到指針的時(shí)候,不要被int ***這樣的東西嚇到,就像前面說的,指針就是指向某種類型的指針,我們只看最后一個(gè)*號(hào),前面的只不過是type類型罷了。
細(xì)心一點(diǎn)的人應(yīng)該發(fā)現(xiàn)了,在“什么是指針”這一小節(jié)當(dāng)中,已經(jīng)表明了:
指針的長(zhǎng)度跟CPU的位數(shù)相等
,大部分的CPU是32位的,因此我們說,
指針的長(zhǎng)度是32bit,也就是4個(gè)字節(jié)!
注意:任意指針的長(zhǎng)度都是4個(gè)字節(jié),不管是什么指針?。ó?dāng)然64位機(jī)自己去測(cè)一下,應(yīng)該是8個(gè)字節(jié)吧。。。)
于是:
Type *p;
izeof(p)的值是4,Type可以是任意類型,char,int, long, struct, class, int **…
以后大家看到什么sizeof(char*), sizeof(int *),sizeof(xxx *),不要理會(huì),統(tǒng)統(tǒng)寫4,只要是指針,長(zhǎng)度就是4個(gè)字節(jié),絕對(duì)不要被type類型迷惑!
-
函數(shù)
+關(guān)注
關(guān)注
3文章
4331瀏覽量
62622 -
指針
+關(guān)注
關(guān)注
1文章
480瀏覽量
70564
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論