小编Gri*_*inV的帖子

为什么-i ++和 - (i ++)不同?为什么结果如下?

可能重复:
使用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 ++)莫名其妙

c++ language-lawyer

-4
推荐指数
1
解决办法
542
查看次数

标签 统计

c++ ×1

language-lawyer ×1