「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 演算子の優先順位と結合性はプログラミングにおける演算の順序をどのように決定するのでしょうか?

演算子の優先順位と結合性はプログラミングにおける演算の順序をどのように決定するのでしょうか?

2024 年 11 月 9 日に公開
ブラウズ:560

How Do Operator Precedence and Associativity Determine the Order of Operations in Programming?

プログラミングにおける優先順位と結合性

プログラミングでは、式を正しく評価するには演算の順序が重要です。演算子の優先順位と結合性は、この順序を決定する際に重要な役割を果たします。

演算子の優先順位と結合性は誰が定義するのですか?

特定のプログラミング言語の標準は、演算子の優先順位と結合性を定義します。 。 C および C の場合、これらの定義はそれぞれの言語文法にあります。

演算子の優先順位はどのように定義されていますか?

演算子の優先順位は、演算子の優先順位に基づいて演算子のグループ化を確立します。優先度。優先順位の高い演算子は、優先順位の低い演算子よりも前に評価されます。この階層は言語文法内で定義されます。

結合性はどのように定義されますか?

結合性により、同じ演算子の隣接した使用がどのようにグループ化されるかが決まります。たとえば、演算子が左から右に結合する場合、その演算子の隣接した使用は左から右に結合します。この規則も言語文法から派生したものです。

評価順序との関係

演算子の優先順位と結合性は、関数呼び出しの評価順序を直接制御しません。標準では、演算子のオペランドが演算子自体の前に評価されることのみが要求されています。

左から右への関数の結合性

関数は常に左から評価されるという信念右は完全に正確ではありません。関数呼び出し演算子などの一部の演算子には左から右への結合性がありますが、これは関数呼び出しが評価される順序を決定するものではありません。

結合性の影響

]

f1() f2() * f3() の例を考えてみましょう。 * 演算子は演算子よりも優先順位が高いため、式は f1() (f2() * f3()) としてグループ化されます。ただし、関数呼び出しの評価順序は結合性によって指定されません。

その他のシーケンスに関する考慮事項

特定の演算子は、オペランドの評価に順序制限を課すことができます。たとえば、x || ではy、x は常に y より前に評価されます。これにより、短絡動作が可能になります。

履歴コンテキスト

シーケンス ポイントは、以前は C および C で評価順序を定義するために使用されていました。ただし、最新の標準では、この動作を説明するために「前に順序付けされた」関係の概念が採用されています。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3