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