-11

我是一名初学者 C 程序员,最近正在使用逻辑运算符。

当两个操作数都为零时,逻辑或 ( ||) 为零。还是工作方式有些不同?

它是如何工作的 ?谁能详细解释一下!

4

2 回答 2

14
TRUE  || TRUE  == TRUE
TRUE  || FALSE == TRUE
FALSE || TRUE  == TRUE
FALSE || FALSE == FALSE

在 C 中,零值是 FALSE,任何非零值都是 TRUE

此外,如果左侧表达式的||计算结果为 TRUE,则不计算右侧表达式。

于 2013-05-20T16:05:22.690 回答
4

||如果任一输入为真,则逻辑或(C 中的运算符)的结果为真。同样,如果两个输入都为真,则逻辑 AND(&&C 中的运算符)为真。

A  B   A OR B   A AND B
0  0     0        0
0  1     1        0
1  0     1        0
1  1     1        1

(请注意,0 是 FALSE,其他任何值都是 TRUE,1 通常用于上述真值表中)。

通过组合这些运算符和逻辑否定运算符(!在 C 中),您可以创建所需的任何运算,例如“异或”(如果其输入中恰好有 1 个为真,则为真)可以写为(A || B) && !(A && B)

请注意,在 C 语言中,如果没有必要,不能保证运算符的两侧都会被计算 - 例如,如果运算符的左侧&&计算结果为 false,则计算右侧没有意义。

于 2013-05-20T16:10:39.250 回答