-2
私はこのコードを別のコンパイラで実行しています。マイクロソフトVS。それは1を出力しますが、gccでは0を出力します。標準のC++による結果は何ですか?このコードの標準化があれば、私はしません。C++の代入演算子または増分演算子
int a=0;
a=a++;
cout << a<< endl;
私はこのコードを別のコンパイラで実行しています。マイクロソフトVS。それは1を出力しますが、gccでは0を出力します。標準のC++による結果は何ですか?このコードの標準化があれば、私はしません。C++の代入演算子または増分演算子
int a=0;
a=a++;
cout << a<< endl;
a=a++
undefined behaviorです。何が起こるかについての標準的な定義がないだけでなく、異なる実行間で常に同じことをすることさえ保証されていません。
今度は0を出力し、次回は1を出力し、3回目にプログラムをクラッシュさせる可能性があります。
これはあなたの質問に答えます:https://stackoverflow.com/questions/4176328/undefined-behavior-and-sequence-points –
C++のタグwiki *明示的に*あなたにこれを聞かないように指示します。 –