可能重复:
使用std :: cout评估参数的顺序
我现在已经知道了!这是'cout' 的全部代码:
#include <iostream>
using namespace std;
int main()
{
int i = 3;
cout <<-i++<<endl<<i<<endl<<-(i++)<<endl<<i<<endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我用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;
}
Run Code Online (Sandbox Code Playgroud)
和
int main()
{
int i = 3;
cout <<-?i++?<<endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我逐个编译它们,结果是一样的:-3 3想到所有的答案,我可能有一个错误的测试-i ++和 - (i ++)莫名其妙