ホームページ >バックエンド開発 >C++ >演算子の優先順位はプログラミングにおける評価の順序とどのように異なりますか?

演算子の優先順位はプログラミングにおける評価の順序とどのように異なりますか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-21 04:31:12961ブラウズ

How Does Operator Precedence Differ from the Order of Evaluation in Programming?

演算子の優先順位と評価の順序の関係は何ですか?

一般的な理解に反して、演算子の優先順位は評価の順序を完全には決定しません。プログラミングにおける評価。優先順位によって値の計算の順序が決まりますが、オペランド自体の評価は優先順位とは無関係です。

例:

式 x

について考えてみましょう。 y push(z); push(y); push(x); test_less(); // compares TOS to TOS(1), pushes result on stack test_less(); // compares TOS to TOS(1), pushes result on stack

これは、x または y の前に z を評価しますが、引き続き (x 評価と副作用:

副作用、変数のインクリメントやデクリメントなどは、概念的には別のスレッドによって実行されます。このスレッドは次のシーケンス ポイントで結合します。 a = b c; という式を考えてみましょう。これは次のように実行できます。
push(a);
push(b);
push(c+1);
side_effects_thread.queue(inc, b);
side_effects_thread.queue(inc, c);
add();
assign();
join(side_effects_thread);

ここで、a は、代入のターゲットであっても、b または c より前に評価されます。次のシーケンス ポイントより前の式の他の部分で変数を使用しようとすると、未定義の動作が発生します。

以上が演算子の優先順位はプログラミングにおける評価の順序とどのように異なりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。