可能重复:
使用 std::cout 评估参数的顺序
我现在知道了!这是负责'cout' 的所有代码:
#include <iostream>
using namespace std;
int main()
{
int i = 3;
cout <<-i++<<endl<<i<<endl<<-(i++)<<endl<<i<<endl;
return 0;
}
我用VC++6.0编译,输出是:-4 4 -3 3
但是我用g++编译,输出是:-4 5 -3 5
为什么?我认为它们应该是相同的:-4 4 -4 4
PS:我试试:
int main()
{
int i = 3;
cout <<-i++<<endl;
return 0;
}
和
int main()
{
int i = 3;
cout <<-(i++)<<endl;
return 0;
}
我一一编译,结果是一样的:-3 3思考所有答案,我可能在某种程度上测试-i++和-(i++)有错误