C でのポスト インクリメントの動作
C では、ポスト インクリメント (例: i ) は変数をインクリメントしますが、元の値を返します。複雑な式では、その動作を理解することが重要です。
次のコードを考えてみましょう:
<code class="cpp">int i = 5; cout << i++ << i-- << ++i << --i << i << endl;</code>
このステートメントは、結果を出力する前に式 i i-- i --i i を評価します。ただし、評価の順序は定義されていないため、予測できない出力 (例: "45555") が発生します。
シーケンス ポイントのルールを詳しく見てみましょう:
例:
<code class="cpp">int x = 20, y = 35; x = y++ + y + x++ + y++;</code>
この式は次の順序で評価されます:
したがって、の最終値はx は 126 (35 36 20 21)、y は 37 です。
結論:
C のポストインクリメントを順序付けされていない式で使用すると、未定義の動作が発生する可能性があります。シーケンス ポイントを理解し、シーケンスされていないコンテキスト内の同じ変数に対する副作用を回避することが重要です。
以上がC 式内の複数のポストインクリメントの出力が予測できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。