この単純なコードを実行しようとしています
int a=0;
cout<<a<<a++;
しかし、出力は私が期待したものではありません
10
私は "00" と a=1 を期待しますが、答えが異なるのはなぜですか?
そして、あなたは何を期待していますか?または、より正確には、何かを期待するのは間違っています。変数を変更し、書き込む値を決定する以外の理由で変数にアクセスしているため、介在するシーケンス ポイントがないため、コードの動作は未定義です。「10」を出力するか、「01」を出力するか、「42」を出力するか、クラッシュすることさえあります。
C++ 標準では、部分式の実行順序を指定していません
特に明記されていない限り、個々の演算子のオペランドと個々の式の部分式の評価の順序、および副作用が発生する順序は指定されていません...
それは簡単です...ステートメントの実行のC ++順序に関する私の知識によれば、右から始まります... in cout <