プログラミングにおける優先順位と結合性
プログラミングでは、演算の順序は式を正しく評価するために重要です。演算子の優先順位と結合性は、この順序を決定する際に重要な役割を果たします。
演算子の優先順位と結合性は誰が定義するのですか?
演算子の優先順位と結合性は、特定のプログラミング言語の標準によって定義されます。 。 C および C の場合、これらの定義はそれぞれの言語文法にあります。
演算子の優先順位はどのように定義されますか?
演算子の優先順位は、演算子の優先順位に基づいて演算子のグループ化を確立します。優先度。優先順位の高い演算子は、優先順位の低い演算子よりも前に評価されます。この階層は言語文法内で定義されます。
結合性はどのように定義されますか?
結合性は、同じ演算子の隣接する使用がどのようにグループ化されるかを決定します。たとえば、演算子が左から右に結合する場合、その演算子の隣接した使用は左から右に結合します。このルールも言語文法から派生したものです。
評価順序との関係
演算子の優先順位と結合性は、関数呼び出しの評価順序を直接制御しません。標準では、演算子のオペランドが演算子自体の前に評価されることのみが要求されます。
左から右への関数結合性
関数は常に左から評価されるという信念右は完全に正確ではありません。関数呼び出し演算子などの一部の演算子には左から右への結合性がありますが、これは関数呼び出しが評価される順序を決定するものではありません。
結合性の影響
f1() f2() * f3() の例を考えてみましょう。 * 演算子は演算子よりも優先順位が高いため、式は f1() (f2() * f3()) としてグループ化されます。ただし、関数呼び出しの評価順序は結合性によって指定されません。
その他のシーケンスに関する考慮事項
特定の演算子は、オペランドの評価に順序制限を課すことができます。たとえば、x || ではy、x は常に y より前に評価されます。これにより、短絡動作が可能になります。
履歴コンテキスト
シーケンス ポイントは、以前は C および C で評価順序を定義するために使用されていました。ただし、最新の標準では、この動作を説明するために「前にシーケンスされた」関係の概念が採用されています。
以上が演算子の優先順位と結合性はプログラミングにおける演算の順序をどのように決定するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。