私はC言語が初めてなので、sum1が助けてください。書かれたACコード
int i=3;
printf("%d",++i + ++i);
コンパイラは O/P =9 を与えます。どのように?
私はC言語が初めてなので、sum1が助けてください。書かれたACコード
int i=3;
printf("%d",++i + ++i);
コンパイラは O/P =9 を与えます。どのように?
結果は未定義です。式 (より正確にはシーケンス ポイント)で変数を複数回変更しています。
シーケンス ポイント間で変数を複数回変更することは定義されていないため、実行しないでください。
++i + ++i
この特定のケースでは、次のように評価することを決定するため、コンパイラである可能性があります
++i
4 を生成し、i を 4 のままにします++i
5 を生成し、i を 5 のままにします (前のステップで i を 4 のままにして、5 にインクリメントします)。別のコンパイラ、または最適化レベルを変更した場合、またはコードをわずかに変更した場合、異なる出力が生成される可能性があります。