法大奥山研究室

 previous  contents

7.5. 論理演算子 &&||!


 論理演算子は,関係演算子同様,真の場合には 1,偽の場合には 0int型で返します。

■論理演算子(Logical Operators)
x&&y 論理AND演算子
(Logical AND Operator)
論理積 (AND,∧):一方が 0 の場合には 0 を,両方とも 0 以外ならば 1 を返す。
x||y論理OR演算子
(Logical OR Operator)
論理和 (OR,∨):一方が 0 以外ならば 1 を,両方とも 0 ならば 0 を返す。
!x論理否定演算子
(Logical Negation Operator)
否定 (NOT,¬):これは (x == 0) と同じ。x0 ならば 1 を,0 以外ならば 0 を返す。

論理積については,第1オペランドが 0 ならば,第2オペランドを評価しません。論理和については,第1オペランドが 0 に等しくなければ,第2オペランドを評価しません。

/* Example 7.6 */

#include <stdio.h>

int main(void)
{
       int x = 0, y = 1;

       printf("(1) !(!x && !y)\t= %d\n", !(!x && !y));
       printf("(2) x||y\t= %d\n", x||y);

       return 0;
}

実行結果です。

(1) !(!x && !y) = 1
(2) x||y        = 1

(1) と (2) は同じになります。「ド・モルガンの法則」です。

/* Example 7.7 */

#include <stdio.h>

int main(void)
{
       char c = '\0';
       printf("!'\\0' = %d\n", !c);
       return 0;
}

実行結果です。

!'\0' = 1

ナル文字 '\0' は ASCIIコード番号 0 の文字であり,それは 0 に等しいです。


 previous  contents