ホームページ  >  記事  >  バックエンド開発  >  C言語で「||」は何を意味しますか?

C言語で「||」は何を意味しますか?

王林
王林オリジナル
2020-07-11 11:57:4142153ブラウズ

C言語では、「||」は論理演算子(or)を表し、そのオペランドはブール型です。つまり、値は「0」(falseを表す)と「0」の2つだけです。 「1」(真を表します)。 C 言語では、論理演算ではゼロ以外の値はすべて 1 として扱われると規定されています。

C言語で「||」は何を意味しますか?

C 言語では、「||」は論理演算子 (or) を表し、そのオペランドはブール型、つまり「0」のみ ( 「偽」を意味します)と「1」(真を意味します)。 C 言語では、論理演算ではゼロ以外の値はすべて 1 として扱われると規定されています。

(推奨チュートリアル: C 言語チュートリアル )

同様の演算子に「|」というビット演算子 (or) があり、そのオペランドはビット シーケンスです。ビット シーケンスには、文字型、整数型、長整数型または短整数型などを指定できます (通常は符号なし整数型が選択されます)。ビット演算では、対応するビット間の論理演算を行うため、論理的にはビット演算処理には複数の論理演算処理が含まれます。

以下では、2 つの違いを理解するために例を使用します。

#include <stdio.h>
int main (void)
{
    unsigned int x = 0x1101;
    unsigned int y = 0x1100;
    /*逻辑操作*/
    printf("sizeof(x || y): %d\n", sizeof(x || y));
    if(x||y)
    {
        printf("x || y : %d(True) \n", x||y);
    }
    else
    {
        printf("x || y : %d(False) \n", x||y);
    }
    /*位操作*/
    printf("sizeof(x | y): %d\n", sizeof(x | y));
    printf("x | y : %x \n", x|y);
    return 0;
}

変数 x も変数 y も 0 ではないため、ステートメント if(x||y) を実行すると 1 が返されます。 x|y (つまり、1101|1100) を実行すると、対応するビットが 1 つずつ論理 OR されるため、結果は 1101 になります。

プログラムの実行結果は次のとおりです:

sizeof(x || y): 4
x || y : 1(True)
sizeof(x | y): 4
x | y : 1101

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

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