Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 执行递增和递减时的“cout”链接会产生意外的结果_C++_Increment_Cout_Chaining_Decrement - Fatal编程技术网

C++ 执行递增和递减时的“cout”链接会产生意外的结果

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" }

以下程序仅包括递增和递减操作。正如我预测的那样,程序应该打印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"
}
…但如果我不将输出命令链接到

cout<<i++<<endl;
cout<<i++<<endl;
cout<<--i<<endl;
cout<<i++<<endl;

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

当你使用i++时,它会在行之后运行,当你运行++i时,它会在行执行之前添加,所以当你这样做的时候-i它会从行运行i++调用之前的i中减去

尝试将它们全部设置为i++和i-或-i和++i,这样结果就不会因它们是否在同一行上而有所不同