std::cout 挿入順序での引数の評価
C では、 std::cout 挿入を使用した式内の引数評価の順序オペレーターは混乱する可能性があります。次のコード スニペットを考えてみましょう:
このコードの出力は驚くべきものです:
この出力を理解するには、引数の評価の順序を詳しく調べる必要があります。
未指定の評価順序
通常、C では評価順序を指定しません。式内の引数の評価順序。これはコンパイラが決定します。ただし、次のような例外もあります。
左から右の評価仮定
std::cout の挿入では左から右への評価を想定するのが一般的ですが、これは保証されていません。この例では、3 番目の引数の「シャドウ」テストは foo の呼び出し前に評価され、変更されます。
混乱の解決
意図した結果を確実にするには評価順序を変更するには、式を別々のステートメントに分割します:
このコードは正しくあります出力:
以上がC では std::cout 引数の評価順序が予測できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。