我使用vs2010编译器,我面临歧义
下面的代码是什么意思?什么是输出?为什么?
int a;
cout<<(a=2)+(a=3)+(a=5)
如果之前询问过这个问题或者问题是否明显,我很抱歉!但我很满意结果
output :15
我在这里找不到我的答案:
Why are these constructs (using ++) undefined behavior?
请耐心等待,再看看结果(请) 提前thanx
答案 0 :(得分:3)
下面的代码是什么意思?
没什么明智的。
输出是什么?
不可预知的。
为什么?
因为此代码调用未定义的行为。
答案 1 :(得分:1)
该标准表示未定义表达式中并行子表达式的评估顺序。在您的示例中,编译器可以自由选择首先评估哪一个,因此结果是不可预测的