逻辑运算符的短路现象

短路现象是什么?

在C语言中,逻辑与(&&)和逻辑或(||)运算符具有短路现象。短路现象指的是在使用逻辑与和逻辑或运算符时,当左侧表达式的值已经决定了整个表达式的结果时,右侧的表达式将不会被求值。

具体来说:

  1. 对于逻辑与(&&)运算符,如果左侧的表达式为假(0),则整个表达式的值必定为假,此时右侧的表达式将不会被求值,因为无论右侧表达式的值是什么,整个表达式的值都不会改变。

  2. 对于逻辑或(||)运算符,如果左侧的表达式为真(非0),则整个表达式的值必定为真,此时右侧的表达式将不会被求值,因为无论右侧表达式的值是什么,整个表达式的值都不会改变。

举例:

1:使用逻辑与(&&)的短路现象

int a = 5;
int b = 0;

if (b != 0 && a++) ;//if成立后进行空操作
    // 这里的表达式a不会自增为6,因为b != 0已经确定整个条件为假,右侧的表达式将会被直接忽略。
    printf("%d",a);

 同理

#include<stdio.h>
int main()
{
    int a=10,b=5;
    (a=0)&&(b=4);//a=0已经确定了整个表达式的结果为假,所以b=4不会执行,直接被忽略了
    printf("a=%d,b=%d\n",a,b);
    return 0;
}

 

2.使用逻辑或(||)的短路现象:

 

int a = 5;

if (a>0||a++) ;//if成立后进行空操作

 printf("%d",a);

//因为a>0表达式已经为真,所以整个式子可以确定为真,a++会被忽略。

结果: 

同理:

#include<stdio.h>
int main()
{
    int a=10,b=5;
    (a=1)||(b=4);
    printf("a=%d,b=%d\n",a,b);
    return 0;
} //a=1已经确定了整个表达式的结果为真,b=4的赋值操作会被忽略

 

短路现象的意义: 

  1. 提高效率:在逻辑与运算中,如果第一个操作数为假,那么整个表达式的值就肯定为假,就不需要再计算第二个操作数。这样可以节省计算资源,提高程序的执行效率。

  2. 避免错误:在逻辑或运算中,如果第一个操作数为真,那么整个表达式的值就肯定为真,就不需要再计算第二个操作数。这种行为可以避免在某些情况下不必要的计算,从而减少错误的发生。

  3. 逻辑判断:短路现象使得我们可以根据第一个操作数的值来进行逻辑判断,从而简化程序的逻辑结构,提高代码的可读性和可维护性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值