C++ 执行递增和递减时的“cout”链接会产生意外的结果
以下程序仅包括递增和递减操作。正如我预测的那样,程序应该打印0 1 1,但它打印的是1 0 2 0,但是为什么呢C++ 执行递增和递减时的“cout”链接会产生意外的结果,c++,increment,cout,chaining,decrement,C++,Increment,Cout,Chaining,Decrement,以下程序仅包括递增和递减操作。正如我预测的那样,程序应该打印0 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" }
#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;
即使它们应该以同样的方式工作,但它们产生的结果不同。但是为什么呢?当你使用i++时,它会在行之后运行,当你运行++i时,它会在行执行之前添加,所以当你这样做的时候-i它会从行运行i++调用之前的i中减去 尝试将它们全部设置为i++和i-或-i和++i,这样结果就不会因它们是否在同一行上而有所不同