我正在尝试运行这个简单的代码
int a=0;
cout<<a<<a++;
但输出不是我预期的
10
我希望“00”和a = 1,为什么答案会有所不同?
答案 0 :(得分:3)
你期待什么?或者更确切地说,你错了 期待任何事情:你正在修改变量并访问它 除了确定要写入的值之外的原因,没有 中间序列点,因此代码具有未定义的行为。 它可能输出“10”,可能输出“01”,或者可能输出 “42”,甚至崩溃。
答案 1 :(得分:2)
C++ standard未指定子表达式的执行顺序
除非另有说明,否则评估个人操作数的顺序 单个表达式的运算符和子表达式以及顺序 发生副作用的是未指明的......
答案 2 :(得分:0)
这很简单......根据我在C ++中的知识,任何语句的执行顺序都从右边开始...在cout&lt;