找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2629|回复: 3

[通用编程] 运算符*和&

[复制链接]
发表于 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的结果是一个指针" -----什么叫它的结果是一个指针?????[s:6][s:6][s:6]
发表于 2007-8-12 12:28:07 | 显示全部楼层
或者這樣理解吧,&如果放左一個變數之先,便會回傳這個變數的記憶體位置
由於指標是指著某個記憶體位置的物事,&a理所當然地是一個指標
而雙層指標就是說這個指標指著一個值,而那個值是一個記憶體的位置
*在變數以先便代便傳回變數内指著的記憶體位置的值
所以 在int **ptr,*ptr的type是int*

其實只要把&解成傳回地址,*解成取得指標指著的地址的內容便可以了
E文上來說,&->reference, *->dereference
也就是參考和反參考的意思,會比較容易明白
 楼主| 发表于 2007-8-12 13:17:09 | 显示全部楼层
[s:5] 什么指标,没是很懂,整体也不怎么懂
发表于 2007-8-12 14:20:13 | 显示全部楼层
某一般只是把指標當成一個long,代表某個地址而已,不用想太複雜
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|幻想森林

GMT+8, 2026-11-6 18:30 , Processed in 0.010734 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表