<分区>
下面代码的结果怎么是2?
int i=2,j;
j=i++ + --i;
cout<<j;
它是先求--i,再求i++,但应该反过来,即(优先级高的后缀增量应该先执行),所以答案应该是4。
标签 c++
<分区>
下面代码的结果怎么是2?
int i=2,j;
j=i++ + --i;
cout<<j;
它是先求--i,再求i++,但应该反过来,即(优先级高的后缀增量应该先执行),所以答案应该是4。
最佳答案
实际上,不,未指定 +
的哪一侧将首先被评估。由于这个原因并且因为这些操作作用于同一个变量,您的程序具有未定义的行为。任何事情都可能发生。永远不要写这样的代码。
关于c++ - 如何评估前缀和后缀运算符的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35987811/