| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1182 人关注过本帖
标题:指针表达式的疑惑
只看楼主 加入收藏
沙龙0
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2012-7-12
结帖率:83.33%
收藏
 问题点数:0 回复次数:12 
指针表达式的疑惑
*p++;*++p;++*p;这三个区别何在?
搜索更多相关主题的帖子: 表达式 
2012-07-22 10:42
tiyager
Rank: 2
等 级:论坛游民
帖 子:14
专家分:25
注 册:2012-7-16
收藏
得分:0 
没有测试,感觉是第一个和第三个是指针后移一位, 第二个是乘以++p;自己测试以下。
2012-07-22 11:08
circlemiss
Rank: 2
等 级:论坛游民
帖 子:30
专家分:51
注 册:2012-7-19
收藏
得分:0 
++和*优先级一样,是从右向左结合的,先算右面的再算左面.*p++还是原来地址以基类型扩展所指向的内容。*++p地址加1后以及基类型扩展后所指向的内容。++*p,p地址开始以基类型扩展所指向的内容加1.
2012-07-22 12:05
micholasmalo
Rank: 2
等 级:论坛游民
帖 子:40
专家分:62
注 册:2012-6-22
收藏
得分:0 
前面2个地址+1,后面是元素值+1
2012-07-22 15:52
westfall999
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:40
专家分:101
注 册:2012-7-22
收藏
得分:0 
*取内容运算与++地址偏移运算的优先级相同,规则是自右向左,所以三个表示可以写成:
*p++等价于*(p++),先偏移地址,后再取内容,但由于地址是后++,所以取出的内容仍为旧内容,直到一下个表达式p的地址才实际偏移。
*++p等价于*(++p),先偏移地址,后再取内容,但由于地址是前++,所以先偏移地址再取偏移后的新内容。
++*p等价于++(*p),先取旧内容,再在旧内容上自增1,因为*p这一步取出的是内容,而不是地址。

个人理解~~
2012-07-22 19:19
c4fun
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2012-8-6
收藏
得分:0 
回复 5楼 westfall999
测试,正解!
2012-08-16 16:20
qrs小坤
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2012-7-27
收藏
得分:0 
优先级为题 记住相同优先级单目从右向左 双目从左向右
2012-08-17 11:19
nash0216
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-8-17
收藏
得分:0 
理解好优先级,问题迎刃而解!
2012-08-17 15:09
施熠
Rank: 2
来 自:南京
等 级:论坛游民
帖 子:69
专家分:29
注 册:2012-2-4
收藏
得分:0 
回复 楼主 沙龙0
*p++:指针取值,再指向下一个地址
;*++p:取值指向,指向这个
;++*p:取值,再取的值加一
2012-08-18 01:45
a7882669
Rank: 4
等 级:业余侠客
帖 子:192
专家分:290
注 册:2012-4-17
收藏
得分:0 
这个东西的优先级  是从 右至左
2012-08-18 09:35
快速回复:指针表达式的疑惑
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017564 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved