执行增量和减量时“cout”链接会产生意外结果

时间:2017-04-23 22:43:42

标签: increment cout chaining decrement

以下程序包括简单的递增和递减操作。正如我的预测,程序应该打印“0 1 1 1”,但它打印“1 0 2 0”而不是,为什么?

#include<iostream>
using namespace std;
int main(void)
{
    int i=0;
    cout<<i++<<" "<<i++<<" "<<--i<<" "<<i++;//this will print "1 0 2 0"
}

...但如果我不链接输出命令,

,它可以正常工作
cout<<i++<<endl;
cout<<i++<<endl;
cout<<--i<<endl;
cout<<i++<<endl;

即使它们应该以相同的方式工作,但它们会产生不同的结果。但为什么呢?

enter code here

1 个答案:

答案 0 :(得分:0)

使用i ++时发布和预增量它在运行++之后在行之后运行i它在行被激活之前添加,所以当你执行时 - 它在行运行i ++调用之前从i减去。

尝试将它们全部设为i ++和i--或--i和++ i,因此结果不会因为它们是否在同一行而不是