C++编程中的或||、与&&、非!逻辑运算符基本用法整理
C++编程中的或||、与&&、非!逻辑运算符基本用法整理
发布时间:2016-12-28 来源:查字典编辑
摘要:逻辑或运算符:||语法logical-or-expression||logical-and-expression备注如果任一操作数或两个操作...

逻辑或运算符:||

语法

logical-or-expression || logical-and-expression

备注

如果任一操作数或两个操作数为 true,则逻辑“或”运算符 (||) 返回布尔值 true;否则返回 false。操作数在计算之前隐式转换为类型 bool,结果的类型为 bool。逻辑“或”具有从左向右的关联性。

逻辑“或”运算符的操作数不需要是同一类型,但是它们必须是整型或指针类型。操作数通常为关系或相等表达式。

第一个操作数将完全计算,并且在继续计算逻辑“或”表达式之前将完成所有副作用。

仅当第一个操作数的计算结果为 false (0) 时计算第二个操作数。在逻辑“或”表达式为 true 时,这将消除对第二个操作数的不必要的计算。

复制代码 代码如下:

printf( "%d" , (x == w || x == y || x == z) );

在上面的示例中,如果 x 与 w、y 或 z 相等,则 printf 函数的第二个参数的计算结果将为 true,并打印值 1。否则,它的计算结果将为 false,并打印值 0。只要其中一个条件的计算结果为 true,计算便会停止。

|| 的运算符关键字

or 运算符是 || 的等效文本。在您的程序中有两种访问 or 运算符的方法:包括头文件 iso646.h 或使用 /Za(禁用语言扩展)编译器选项进行编译。

// expre_Logical_OR_Operator.cpp // compile with: /EHsc // Demonstrate logical OR #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; }

逻辑与运算符:&&

语法

expression && expression

备注

如果操作数为 true,则逻辑“与”运算符 (&&) 返回布尔值 true,否则返回 false。操作数在计算之前隐式转换为类型 bool,结果的类型为 bool。逻辑“与”具有从左到右的关联性。

逻辑“与”运算符的操作数不需要具有相同的类型,但它们必须是整数或指针类型。操作数通常为关系或相等表达式。

第一个操作数将完全计算,在继续对逻辑“与”表达式进行计算前将完成所有副作用。

如果第一个操作数的计算结果为 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; }

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新C语言学习
热门C语言学习
编程开发子分类