首页 新闻 会员 周边 捐助

一个++运算的而疑问

0
悬赏园豆:5 [已解决问题] 解决于 2017-11-06 12:20

同样的代码,在win10+vs2015 和centos7+gcc4.8.5下运行结果不同

int num = 50;
num = num ++ * 2;
printf("%d\n", num);
输出是什么

我知道正常的话,num++先使用 后 , 那 num = 50 * 2 = 100 ; 然后num++
这样的思路对吗?

问题补充:

发现这个问题,其实是看java代码是发现的,java代码结果和linux结果相同,
好像忽略了++这一步.

zzblydia的主页 zzblydia | 菜鸟二级 | 园豆:205
提问于:2017-11-06 11:07
< >
分享
最佳答案
0

是2个问题.

一个++,一个结合性.找张表看下运算符结合性.不过你既然已经不同了.说明这个地方的结合性是有争议的.

收获园豆:5
吴瑞祥 | 高人七级 |园豆:29449 | 2017-11-06 11:36

谢谢.找到答案了.编译器问题.确实因为某种原因,++操作没有执行.

at run time ,if evaluation of the operand expression completes abruptly , then the postfix increment expression completes abruptly for the same reason and no incrementation occurs;

zzblydia | 园豆:205 (菜鸟二级) | 2017-11-06 12:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册