C++编程中的或||、与、非!逻辑运算符基本用法整理

2020-01-06 14:14:26于丽

逻辑“与”运算符的操作数不需要具有相同的类型,但它们必须是整数或指针类型。操作数通常为关系或相等表达式。
第一个操作数将完全计算,在继续对逻辑“与”表达式进行计算前将完成所有副作用。
如果第一个操作数的计算结果为 true(非零),则计算第二个操作数。当逻辑“与”表达式为 false 时,这种计算方式可消除不必要的对第二个操作数的计算。可以使用此短路计算防止 null 指针取消引用,如以下示例所示:


char *pch = 0;
...
(pch) && (*pch = 'a');

如果 pch 为 null (0),则从不计算表达式的右侧。因此,无法通过 null 指针进行赋值。
&& 的运算符关键字
and 运算符是 && 的文本等效项。您的程序中有两种访问 and 运算符的方法:包含标头文件 iso646.h,或使用 /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;
}

逻辑非运算符:!
 
语法

 

复制代码

 

! cast-expression

 


备注
逻辑求反运算符 (!) 反转其操作数的含义。操作数必须是算法或指针类型(或计算结果为算法或指针类型的表达式)。操作数将隐式转换为类型 bool。如果已转换的操作数是 false,则结果是 true;如果已转换的操作数是 true,则结果是 false。结果为 bool 类型。
对于表达式 e,一元运算符表达式 !e 与该表达式 (e == 0) 等效,涉及重载运算符的情况除外。
! 的运算符关键字
not 运算符是与 ! 等效文本。在您的程序中,可通过两种方法访问 not 运算符:包含头文件 iso646.h,或使用 /Za(禁用语言扩展)编译器选项进行编译。

 


// expre_Logical_NOT_Operator.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;

int main() {
 int i = 0;
 if (!i)
  cout << "i is zero" << endl;
}