三項条件演算子とその結果の左辺値または右辺値
三項/条件演算子 ('?:') は、選択のための短縮構文を提供します。条件に基づく 2 つの式のうちの 1 つ。この演算子の結果の型を理解することは、さまざまなプログラミング タスクにとって重要です。
左辺値としての条件式
条件演算子は、2 番目と 3 番目のオペランドが左辺値の場合、左辺値を返します。同じタイプの。これは、次のコードの両方のオペランド (x と y) が整数である場合に発生します:
int x = 1; int y = 2; (x > y ? x : y) = 100; // Assignment is allowed since the result is an lvalue
この場合、条件式 (x > y ? x : y) は左辺値であり、これにより次のことが可能になります。後続の 100 への代入。
条件式として右辺値
ただし、第 2 オペランドと第 3 オペランドの型が異なる場合、条件式は右辺値になります。これは、次のコードで明らかです。
int x = 1; long y = 2; (x > y ? x : y) = 100; // Error: Assignment is not allowed for rvalues
y の型と一致するように x を long に暗黙的に変換するため、条件式は右辺値になります。右辺値は変更できないため、代入操作は失敗します。
結果の型の決定
条件式の型と値のカテゴリはコンパイル時に決定されます。これは次の規則に従います。
これらのルールを理解すると、三項/条件演算子を効果的に使用できます。
以上が三項演算子の結果は左辺値ですか?それとも右辺値ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。