august 发表于 2007-8-12 10:36:01

运算符*和&

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的结果是一个指针" -----什么叫它的结果是一个指针?????

coolpay64 发表于 2007-8-12 12:28:07

或者這樣理解吧,&如果放左一個變數之先,便會回傳這個變數的記憶體位置
由於指標是指著某個記憶體位置的物事,&a理所當然地是一個指標
而雙層指標就是說這個指標指著一個值,而那個值是一個記憶體的位置
*在變數以先便代便傳回變數内指著的記憶體位置的值
所以 在int **ptr,*ptr的type是int*

其實只要把&解成傳回地址,*解成取得指標指著的地址的內容便可以了
E文上來說,&->reference, *->dereference
也就是參考和反參考的意思,會比較容易明白

august 发表于 2007-8-12 13:17:09

什么指标,没是很懂,整体也不怎么懂

coolpay64 发表于 2007-8-12 14:20:13

某一般只是把指標當成一個long,代表某個地址而已,不用想太複雜
页: [1]
查看完整版本: 运算符*和&