逻辑与运算符 &&

&& (逻辑 AND) 运算符指示两个操作数是否都为 true。

仅限 C 如果两个操作数均不为零,则结果为。 1 否则,结果具有值 0。 结果的类型为 int。 两个操作数都必须具有 一个 算术或指针类型。 对每个操作数执行通常的算术转换。

仅限 C + + 如果两个操作数的值都是 ,则结果为。 true true 否则,结果具有值 false。 这两个操作数都隐式转换为 bool ,结果类型为 bool

& (按位 AND) 运算符不同, && 运算符保证对操作数进行从左到右求值。 如果左操作数求值为 0 (或 false) ,那么不会对右操作数求值。

以下示例显示如何对包含逻辑 AND 运算符的表达式进行求值:

表达式 结果
1 && 0 false 或者 0
1 && 4 true 或者 1
0 && 0 false 或者 0
以下示例使用逻辑 AND 运算符来避免零除:
(y != 0) && (x / y)

y != 0 求值为 0 (或 false) 时,表达式 x / y 未求值。

注: 逻辑 AND (&&) 不应与按位 AND (&) 运算符混淆。 例如:
   1 && 4 求值为 1 (或    true)
,而
1 & 4 求值为 0