幻想森林

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

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

[复制链接]

313

主题

1574

帖子

1万

积分

⑧专业

*永恒国度*

积分
14145
QQ
发表于 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]
[img][/img] http://shop33698673.taobao.com被别人嫉妒,证明你优秀,嫉妒别人说明你无能
回复

使用道具 举报

19

主题

842

帖子

1万

积分

⑧专业

絕望青年,一起增高吧

积分
13676
发表于 2007-8-12 12:28:07 | 显示全部楼层
或者這樣理解吧,&如果放左一個變數之先,便會回傳這個變數的記憶體位置
由於指標是指著某個記憶體位置的物事,&a理所當然地是一個指標
而雙層指標就是說這個指標指著一個值,而那個值是一個記憶體的位置
*在變數以先便代便傳回變數内指著的記憶體位置的值
所以 在int **ptr,*ptr的type是int*

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

為著彼岸,便要與之妥協 但為著彼岸,更不能與之妥協

回复 支持 反对

使用道具 举报

313

主题

1574

帖子

1万

积分

⑧专业

*永恒国度*

积分
14145
QQ
 楼主| 发表于 2007-8-12 13:17:09 | 显示全部楼层
[s:5] 什么指标,没是很懂,整体也不怎么懂
[img][/img] http://shop33698673.taobao.com被别人嫉妒,证明你优秀,嫉妒别人说明你无能
回复 支持 反对

使用道具 举报

19

主题

842

帖子

1万

积分

⑧专业

絕望青年,一起增高吧

积分
13676
发表于 2007-8-12 14:20:13 | 显示全部楼层
某一般只是把指標當成一個long,代表某個地址而已,不用想太複雜

為著彼岸,便要與之妥協 但為著彼岸,更不能與之妥協

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-4 01:23 , Processed in 0.029200 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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