ホームページ >バックエンド開発 >C++ >条件演算子関数は C と C でどのように異なりますか?

条件演算子関数は C と C でどのように異なりますか?

DDD
DDDオリジナル
2024-11-03 02:10:02863ブラウズ

How Does the Conditional Operator Function Differ Between C and C  ?

C と C の条件演算子

C の条件演算子 (?) は、特に C の条件演算子と微妙な違いを示します。

左辺値を返す

C では、条件演算子は左辺値を返すことができます。左辺値は、代入できる変数または式です。 。これにより、次のような操作が可能になります。

<code class="c++">(true ? a : b) = 1;</code>

この例では、条件 true が true の場合、変数 a には値 1 が割り当てられます。

対照的に、C では左辺値に次のような操作が許可されません。条件演算子によって返されます。同様の効果を実現するには、 if/else ステートメントを使用するか、参照を直接操作する必要があります。

<code class="c">*(true ? &a : &b) = 1;</code>

演算子の優先順位

さらに、 C の条件演算子には次の値があります。代入演算子 (=) が優先され、右から左にグループ化されます。これは、

<code class="c++">true ? a = 1 : b = 2;</code>

のようなコードが有効であることを意味します。ただし、C では、最後の式を括弧で囲んでいないと、

<code class="c">true ? a = 1 : (b = 2);</code>

エラーが発生します。

以上が条件演算子関数は C と C でどのように異なりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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