使用cout输出流输出的顺序

时间:2013-07-21 16:27:01

标签: c++ output cout

我正在尝试运行这个简单的代码

int a=0;
cout<<a<<a++;

但输出不是我预期的

10

我希望“00”和a = 1,为什么答案会有所不同?

3 个答案:

答案 0 :(得分:3)

你期待什么?或者更确切地说,你错了 期待任何事情:你正在修改变量并访问它 除了确定要写入的值之外的原因,没有 中间序列点,因此代码具有未定义的行为。 它可能输出“10”,可能输出“01”,或者可能输出 “42”,甚至崩溃。

答案 1 :(得分:2)

C++ standard未指定子表达式的执行顺序

  

除非另有说明,否则评估个人操作数的顺序     单个表达式的运算符和子表达式以及顺序     发生副作用的是未指明的......

答案 2 :(得分:0)

这很简单......根据我在C ++中的知识,任何语句的执行顺序都从右边开始...在cout&lt;