C语言-逻辑运算符

逻辑运算符提供逻辑判断功能,用于构建更复杂的表达式。

一、常见逻辑运算符

  就是 与 或 非

逻辑运算符描述功能
&&与运算符两个条件都要满足
||或运算符两个条件只需满足其一
!非运算符否定条件

任何非零值都表示真,零值表示伪

二、短路现象

我们都知道初中物理上的电路短路吧,当给小灯泡两端接入一个导线时,小灯泡就被短路了。

在这里插入图片描述

与上述类似,当表达式已经可以判断出结果后就不会继续执行后面的代码
例如ture || false中,判断前面是 true 时,就不用再管后面的 false 了,因为他已经不影响结果了。

1.&&

a && b
当 a 为假(或0)时,因为a && b 结果必定为 0,所以不再执行表达式 b
当 a 为真(非0)时,因为a && b 结果不确定,所以会继续求解表达式b


例如下面这段代码,已经知道 i 的结果为 0,故 i && j++ > 0 的结果必定为 0,所以也就不用再执行 j++ > 0

int i = 0;
int j = 10;
if(i && j++ > 0){
    printf("1111");
}else{
    printf("2222"); // 执行
}

printf("%d\n",j); // 10

2.||

a || b
当 a 为真(非0)时,因为a || b 结果必定为 1,所以不再执行表达式 b
当 a 为假(或0)时,因为a || b 结果不确定,所以会继续求解表达式b


例如下面这段代码,已经知道 i 的结果为 1,故 i || j++ > 0 的结果必定为 1,所以也就不用再执行 j++ > 0

int i = 1;
int j = 10;
if(i || j++ > 0){
    printf("1111"); // 执行
}else{
    printf("2222"); 
}

printf("%d\n",j); // 10
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值