int x=++n+n++;返回意外值



根据前增量和后增量运算符的概念,以下代码的输出应该是(8+8(=16,但在编译器中它被求值为17。请用步骤进行解释。

#include <iostream>
using namespace std;
int main()
{
int n = 7;
int x = ++n + n++;
cout << x;
return 0;
}

以下代码应为(8+8(=16

这是不对的。


请用步骤进行解释。

此表达式:

++n

修改n

这个表达式:

n++

修改n

这个表达式:

++n + n++

对同一变量有两个修改,它们彼此之间未排序。因此,程序的行为是未定义的。

由于bahviour是未定义的;应该";或";不应该"是

相关内容

  • 没有找到相关文章

最新更新