搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 关于指针运算符*和++的运算顺序迷惑
标题:
关于指针运算符*和++的运算顺序迷惑
只看楼主
邹特强
等 级:
论坛游民
帖 子:123
专家分:85
注 册:2016-9-21
结帖率:
85.71%
楼主
已结贴
√
问题点数:20 回复次数:6
关于指针运算符*和++的运算顺序迷惑
语句:*to++=*for++按书本的意思是,先*for赋值给*to,再to和for各自增值。而我查了下,++运算优先级是高于*的,所以意思不应该是先使to和for各自增值,再将*for赋值给*to吗??为什么,求指教
搜索更多相关主题的帖子:
优先级
2017-02-09 17:46
renkejun1942
来 自:不是这样
等 级:
贵宾
威 望:
33
帖 子:1645
专家分:5297
注 册:2016-12-1
第
2
楼
得分:0
自增作为后缀,是先使用,再自增。
*p++,也就是先取p指向地址的值,P指针偏移到下一个位置。
09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-02-09 18:06
邹特强
等 级:
论坛游民
帖 子:123
专家分:85
注 册:2016-9-21
第
3
楼
得分:0
回复 2楼 renkejun1942
恕我之前看错了,++和*优先级应该是相同的,结合方向自右向左。那*p++不应该先是++与p结合,即p增值,再利用p的值吗??不然那么怎么理解这个自右向左结合呢??不解,求教
............
2017-02-09 18:55
renkejun1942
来 自:不是这样
等 级:
贵宾
威 望:
33
帖 子:1645
专家分:5297
注 册:2016-12-1
第
4
楼
得分:10
回复 3楼 邹特强
你问的问题其实就是
++a,a++的问题。
例如,a = 5;
y = ++a;
--------------
y = a++:
第一个,y = 6
第二个,y = 5
自增在做后缀的时候,不管他的优先级有多高,都是先使用,然后再执行自增。
[此贴子已经被作者于2017-2-9 20:09编辑过]
09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-02-09 20:07
吹水佬
等 级:
版主
威 望:
432
帖 子:10064
专家分:41463
注 册:2014-5-20
第
5
楼
得分:5
*to++=*for++
化简一下就明了,相当于:
*to = *for;
to++;
for++;
2017-02-09 20:11
rjsp
等 级:
版主
威 望:
507
帖 子:8890
专家分:53117
注 册:2011-1-18
第
6
楼
得分:5
不应该是先使to和for各自增值,再将*for赋值给*to吗??
------ 是的,但 to++ 这个
表达式
的值是 to自增前的值,而是 to 的值
*to++ = *for++
不经任何优化前,那就相当于
char* lhs = to;
to自增;
char* rhs = for;
for自增;
*lhs = *rhs;
2017-02-10 08:27
邹特强
等 级:
论坛游民
帖 子:123
专家分:85
注 册:2016-9-21
第
7
楼
得分:0
回复 4楼 renkejun1942
这个解释完全懂了
............
2017-02-10 15:11
7
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-474105-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.674562 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved