主题:怎么计算
luzhiwei512
[专家分:0] 发布于 2010-05-20 00:36:00
d+=p++;
printf("%d\n",p);
回复列表 (共7个回复)
沙发
雪光风剑 [专家分:27190] 发布于 2010-05-20 00:56:00
d+=p++
这句话就是d=d+(p++);
然后又要输出p而不是d,那上述语句中真正起作用的只有p++
也就是p比原始值大了1……
板凳
luzhiwei512 [专家分:0] 发布于 2010-05-20 01:40:00
d=5,p=3
d+=p++;
printf("%d\n",d);那结果是什么
3 楼
alweeq86 [专家分:1170] 发布于 2010-05-20 09:03:00
[quote]d=5,p=3
d+=p++;
printf("%d\n",d);那结果是什么[/quote]
d+=p++;-->d=d+(p++); d=d+3;(此时p=4) d=5+3=8
4 楼
luzhiwei512 [专家分:0] 发布于 2010-05-20 12:31:00
++优先不是P不先加1?
5 楼
mo_0820 [专家分:50] 发布于 2010-05-20 16:27:00
这个取决于左算还是右算,不提倡这样做的,程序要简单明了。
6 楼
龙母绘龙 [专家分:50] 发布于 2010-05-21 23:10:00
[quote]d=5,p=3
d+=p++;
printf("%d\n",d);那结果是什么[/quote]
我给你详细讲一下吧
先说p++:就是先使用p,用完后p的值自动加1
x=++p 是先将p的值加1 后赋值
再说你的代码:
d=5,p=3;
d+=p++就是d=d+(p++)
具体先将p的值和d的值相加,后p自动加1,所以d=d+3,而p=4
7 楼
卡格拉斯 [专家分:10] 发布于 2010-05-27 11:21:00
有意思!
我来回复