ホームページ >バックエンド開発 >C#.Net チュートリアル >C言語の&&と&の違いは何ですか?

C言語の&&と&の違いは何ですか?

下次还敢
下次还敢オリジナル
2024-04-13 18:36:44541ブラウズ

C 言語では、&& と & は両方とも論理演算子ですが、次のような違いがあります。&& は & よりも優先順位が高く、&& は左結合であり、&& はブール値を返します。 && は整数値を返しますが、& は評価を短絡しません。

C言語の&&と&の違いは何ですか?

#C 言語における && と & の違い

C 言語では、&& と & は両方とも論理演算ですブール値を操作するために使用されるシンボル。ただし、これらの間にはいくつかの重要な違いがあります:

1. 操作の優先順位

    && は & よりも操作の優先順位が高くなります。これは、&& が式内の & の前に実行されることを意味します。

2. 結合性

    && は左結合性を持ち、& は右結合性を持ちます。これは、式内に複数の && または & 演算子が出現する場合、&& は式の左端のオペランドを最初に演算し、& は式の右端のオペランドを最初に演算します。

3. 演算結果

    && の演算結果はブール値 (true または false) です。
  • & の結果は整数値 (0 または 1) です。

4. ショート評価

    &&にはショート評価特性があります。これは、最初のオペランドが false の場合、2 番目のオペランドは評価されず、式全体の結果が false になることを意味します。
  • & には短絡評価特性がありません。 2 番目のオペランドは、最初のオペランドの値に関係なく評価され、式全体の結果は 0 または 1 になります。

次のコード例は、これら 2 つの演算子の違いを示しています。

int a = 1, b = 0;

printf("&&: %d\n", a && b); // 输出: 0 (假)
printf("& : %d\n", a & b); // 输出: 0 (0)
最初の例では、 a が true であるため、しかし、b が false の場合、&& 式は false と評価されます。 2 番目の例では、a が true、b が false であるため、& 式は 0 (整数値) と評価されます。

以上がC言語の&&と&の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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