C ++中的逻辑运算符

逻辑运算符的概念很简单。它们允许程序根据多种条件做出决定。每个操作数都被视为可以评估为true或false值的条件。然后,条件的值将用于确定op1运算符op2或!op1分组的总值。

如果一个或两个操作数为true,则逻辑OR运算符(||)返回布尔值true,否则返回false。在求值之前,将操作数隐式转换为bool类型,结果为bool类型。逻辑或具有从左到右的关联性。逻辑“或”运算符的操作数不必为同一类型,但必须为整数或指针类型。操作数通常是关系或相等表达式。

在继续评估逻辑或表达式之前,将完全评估第一个操作数并完成所有副作用。仅当第一个操作数的计算结果为false时,才计算第二个操作数。当逻辑OR表达式为true时,这消除了对第二个操作数的不必要评估。

如果两个操作数均为true,则逻辑AND运算符(&&)返回布尔值true,否则返回false。在求值之前,将操作数隐式转换为bool类型,结果为bool类型。逻辑AND具有从左到右的关联性。逻辑AND运算符的操作数不必为同一类型,但必须为整数或指针类型。操作数通常是关系或相等表达式。

在继续评估逻辑AND表达式之前,将完全评估第一个操作数并完成所有副作用。仅当第一个操作数的值为true(非零)时,才对第二个操作数的值进行评估。当逻辑AND表达式为false时,此评估消除了对第二个操作数的不必要评估。

逻辑否定运算符(!)反转其操作数的含义。操作数必须是算术或指针类型(或计算结果为算术或指针类型的表达式)。操作数被隐式转换为bool类型。如果转换后的操作数为false,则结果为true;否则为false。如果转换后的操作数为true,则结果为false。结果是布尔类型。

 例

#include<iostream>
using namespace std;
int main() {
   bool x = true, y = false;
   cout << (x || y) << endl;
   cout << (x && y) << endl;
   cout << (!x) << endl;
   return 0;
}

输出结果

这将给出输出-

1
0
0

这是因为2中的一个为false,所以为false,一个为true或为true,而非true(x)为false,即0。