首页 > 其他 > 详细

逻辑运算符学习笔记

时间:2019-09-14 16:33:31      阅读:67      评论:0      收藏:0      [点我收藏+]

逻辑运算符

c语言中的逻辑运算符有&&(逻辑与)、||(逻辑非)、!(逻辑或)。其运算规则如下表

运算符描述实例
&& 如果两个操作数都为真,则条件为真,否则为假。 (A && B) 为假。
|| 如果两个操作数中有任意一个为真,则条件为真,否则为假。 (A || B) 为真。
! 用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。 !(A && B) 为真。

实例


#include<iostream>

using namespace std;

int main(){
    int a = 1;
    int b = 2;
    int c; 
    if(a && b){
        printf("a&&b为真\n");
    }else{
        printf("a&&b为假\n");
    }
    if(a || b){
        printf("a||b为真\n");
    }else{
        printf("a||b为假\n");
    }
    if(!(a && b)){
        printf("a&&b为真\n");
    }else{
        printf("a&&b为假\n");
    }
    return 0;
}

运行结果如下:

技术分享图片

另外值得一提的是逻辑运算符的短路特性,短路特性是指如果能够同过某一个条件得知整个表达式的真假情况,将不再进行下一步的运算,比如说a&&b,如果a为假,则整个式子为假,将不再对b进行判断。

实例:

#include<stdio.h>

int main(){
    printf("%d\n",3/0);
    return 0;
}

  运行上面代码,编译器会报错:

"message": "division by zero [-Wdiv-by-zero]"

意思是0不能被用来当除数

而运行下面代码:

 1 #include<stdio.h>
 2 
 3 int main(){
 4     int a = 0;
 5     int b = 2;
 6     if(a && (b/0)){
 7         printf("yes\n");
 8     }else{
 9         printf("no\n");
10     }
11     return 0;
12 }

得到的结果为:

技术分享图片

 

 通过了编译,证明了逻辑运算符的短路特性。当然逻辑或同理。

以上就是我对逻辑运算符的一些认识,如果错误之处,敬请指正。

逻辑运算符学习笔记

原文:https://www.cnblogs.com/ma-liner/p/11519300.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!