“cout”链接执行增量和减量时产生意想不到的结果

问题描述:

以下程序仅包含增量和减量操作。正如我的预测,程序应该打印“0 1 1 1”,但它打印的是“1 0 2 0”,但为什么?“cout”链接执行增量和减量时产生意想不到的结果

#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 

后,当你使用我++中的线运行后,当您运行++我把它添加的行exectued之前,所以,当你没有 - 我从我减去前行跑了预增我++的电话。

试着让它们都是i ++和i--或者--i和++ i所以结果不会根据它们是否在同一行上而不同