-5

私はvs2010コンパイラを使用していますが、あいまいさに直面しています

以下のコードは何を意味していますか?出力は何ですか?なぜですか?

    int a;
    cout<<(a=2)+(a=3)+(a=5)

質問が前に尋ねられた場合、またはそれが明らかである場合は、申し訳ありません! しかし、私は結果に混乱しています

   output :15

私はここで私の答えを見つけることができませんでした:

これらの構成 (++ を使用) が未定義の動作になるのはなぜですか?

辛抱強く結果をもう一度見てください(お願いします)

事前に感謝

4

2 に答える 2

3

以下のコードはどういう意味ですか?

賢明なことは何もありません。

出力は何ですか?

予測不可能な。

なぜ?

このコードは未定義の動作を引き起こすためです。

于 2013-02-14T20:23:41.253 に答える
1

その標準は、式内の並列部分式の評価の順序は定義されていないと述べています。あなたの例では、コンパイラは最初に評価するものを自由に選択できるため、結果は予測できません

于 2013-02-14T20:30:06.893 に答える