0

この単純なコードを実行しようとしています

int a=0;
cout<<a<<a++;

しかし、出力は私が期待したものではありません

10

私は "00" と a=1 を期待しますが、答えが異なるのはなぜですか?

4

3 に答える 3

3

そして、あなたは何を期待していますか?または、より正確には、何かを期待するのは間違っています。変数を変更し、書き込む値を決定する以外の理由で変数にアクセスしているため、介在するシーケンス ポイントがないため、コードの動作は未定義です。「10」を出力するか、「01」を出力するか、「42」を出力するか、クラッシュすることさえあります。

于 2013-07-21T16:39:34.313 に答える
2

C++ 標準では、部分式の実行順序を指定していません

特に明記されていない限り、個々の演算子のオペランドと個々の式の部分式の評価の順序、および副作用が発生する順序は指定されていません...

于 2013-07-21T16:36:45.660 に答える
0

それは簡単です...ステートメントの実行のC ++順序に関する私の知識によれば、右から始まります... in cout <

于 2014-12-31T05:35:12.263 に答える