#include <iostream>
using namespace std;
int main() {
int x = 10;
int y = 11;
int z = 12;
cout << x++ + --x + y++ - y-- + z;
return 0;
}
这里的输出是31
使用Visual Studio 2005的输出是30
出了什么问题!
答案 0 :(得分:3)
cout << x++ + --x + y++ - y-- + z;
这是未定义的行为。
您无法在单个序列中访问单个变量,无法多次读取和写入该变量。
与所有未定义的行为一样,它可能会按预期工作,它可能会重新格式化您的硬盘驱动器,它可能会命令我披萨......或者它可以启动整个行星的自毁序列。所有这些都是可接受的行为,因为您尝试做的事情是未定义的。