逻辑“与”运算符:&&
语法
logical-and-expression
:
equality-expression
logical-and-expression
&&
equality-expression
备注
如果两个操作数都是 true
,则逻辑“与”运算符 (&&
) 返回 true
,否则返回 false
。 操作数在计算之前隐式转换为类型 bool
,结果的类型为 bool
。 逻辑“与”具有从左到右的关联性。
逻辑“与”运算符的操作数不需要具有相同的类型,但它们必须是布尔值、整数或指针类型。 操作数通常为关系或相等表达式。
第一个操作数将完全计算,在逻辑“与”表达式继续进行计算前将完成所有副作用。
仅当第一个操作数的计算结果为 true
(非零)时,才会计算第二个操作数。 当逻辑“与”表达式为 false
时,这种计算方式可消除不必要的对第二个操作数的计算。 可以使用此短路计算防止 null 指针取消引用,如以下示例所示:
char *pch = 0;
// ...
(pch) && (*pch = 'a');
如果 pch
为 null (0),则从不计算表达式的右侧。 这种短路计算使得无法通过空指针赋值。
&&
的运算符关键字
C++ 将 and
指定为 &&
的备选拼写。 在 C 中,备选拼写在 <iso646.h> 标头中作为宏提供。 在 C++ 中,备选拼写是关键字;已弃用 <iso646.h> 或 C++ 等效的 <ciso646>。 在 Microsoft C++ 中,需要 /permissive-
或 /Za
编译器选项才能启用备选拼写。
示例
// expre_Logical_AND_Operator.cpp
// compile with: /EHsc
// Demonstrate logical AND
#include <iostream>
using namespace std;
int main() {
int a = 5, b = 10, c = 15;
cout << boolalpha
<< "The true expression "
<< "a < b && b < c yields "
<< (a < b && b < c) << endl
<< "The false expression "
<< "a > b && b < c yields "
<< (a > b && b < c) << endl;
}
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈