可能重复:
Order of evaluation of arguments using std::cout为什么-i ++和 - (i ++)不同?为什么结果如下?
我现在已经知道它这是负责'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的错误++和 - (我++)不知何故
可以重新格式化,所以我们可以看到完整的代码。 –
归结为评估顺序。看看这个: http://stackoverflow.com/questions/3181211/prefix-postfix-increment-operators – Peter
我是一个C++的绿手,我还没有学过类 – GrinV