运算符*和&
nt a=12;int b;
int *p;
int **ptr;
p=&a;//&a的结果是一个指针,类型是int*,指向的类型是int,指向的地址是a的地址。
*p=24;//*p的结果,在这里它的类型是int,它所占用的地址是p所指向的地址,显然,*p就是变量a。
ptr=&p;//&p的结果是个指针,该指针的类型是p的类型加个*,在这里是int **。该指针所指向的类型是p的类型,这里是int*。
这几句话该怎么理解呢?"&a的结果是一个指针" -----什么叫它的结果是一个指针????? 或者這樣理解吧,&如果放左一個變數之先,便會回傳這個變數的記憶體位置
由於指標是指著某個記憶體位置的物事,&a理所當然地是一個指標
而雙層指標就是說這個指標指著一個值,而那個值是一個記憶體的位置
*在變數以先便代便傳回變數内指著的記憶體位置的值
所以 在int **ptr,*ptr的type是int*
其實只要把&解成傳回地址,*解成取得指標指著的地址的內容便可以了
E文上來說,&->reference, *->dereference
也就是參考和反參考的意思,會比較容易明白 什么指标,没是很懂,整体也不怎么懂 某一般只是把指標當成一個long,代表某個地址而已,不用想太複雜
页:
[1]