"cout" 执行递增和递减时链接产生意外结果
"cout" chaining while performing increment and decrement produces unexpected result
以下程序包括简单的递增和递减操作。正如我的预测,程序应该打印“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;
即使它们应该以相同的方式工作,但它们产生不同的结果。但是为什么?
Post 并在您使用 i++
时预递增 运行s 在您使用 运行 ++i
时它在该行之前添加所以当你执行 --i
时,它从 i
行之前的 i++
调用的 运行 中减去。
尝试将它们全部设为 i++
和 i--
或 --i
和 ++i
这样结果就不会因为它们在同一行上而有所不同不会。
以下程序包括简单的递增和递减操作。正如我的预测,程序应该打印“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;
即使它们应该以相同的方式工作,但它们产生不同的结果。但是为什么?
Post 并在您使用 i++
时预递增 运行s 在您使用 运行 ++i
时它在该行之前添加所以当你执行 --i
时,它从 i
行之前的 i++
调用的 运行 中减去。
尝试将它们全部设为 i++
和 i--
或 --i
和 ++i
这样结果就不会因为它们在同一行上而有所不同不会。