同样的代码,在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结果相同,
好像忽略了++这一步.
是2个问题.
一个++,一个结合性.找张表看下运算符结合性.不过你既然已经不同了.说明这个地方的结合性是有争议的.
谢谢.找到答案了.编译器问题.确实因为某种原因,++操作没有执行.
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;