重複の可能性:
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 ++)をテストする間違いがあります