c++ - 如何评估前缀和后缀运算符的组合

标签 c++

<分区>

下面代码的结果怎么是2?

int i=2,j; j=i++ + --i; cout<<j;

它是先求--i,再求i++,但应该反过来,即(优先级高的后缀增量应该先执行),所以答案应该是4。

最佳答案

实际上,不,未指定 + 的哪一侧将首先被评估。由于这个原因并且因为这些操作作用于同一个变量,您的程序具有未定义的行为。任何事情都可能发生。永远不要写这样的代码。

关于c++ - 如何评估前缀和后缀运算符的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35987811/

相关文章:

c++ - 与 C++ 相比,哪些语言具有更高的抽象级别并且需要更少的手动内存管理?

c++ - 如何验证字符串中的最后四个字符是否在 1900 到 2000 的范围内?

c++ - getopt_long 没有正确处理我的论点

C++ 在知道其类型之前使用自动定义的变量

C++:检查对象是否为非空以便使用 cout 索引每个输出

c++ - 模板初始化构造函数错误

c++ - Qt:如何通过系统调用捕获错误?

c++ - 有没有办法创建动态分配数组的 std::vector ?

c++ - 如何使用特定的 unicode 代码点 rtrim wchar_t?

c++ - 指针增量 - 奇怪