逻辑短路

日期: 2016年6月13日
环境: Xcode 7.3.1
描述:


int num_1 = -1;
int num_2 = -1;

//我们期望num_1得到的值是0,却得得到1
num_1 = (1 || 0) && 0;
//我们期望num_2得到的值是1,却得得到0
num_2 = (0 && 1) || 1;

if(!num_1){
    printf("num_1=0\n");
}

if(num_2){
    printf("num_2=1\n");
}
  • 逻辑与:一真为真,即为真
    当逻辑与操作多个表达式时,第一个操作数为真时,整个表达式都为真,编译器将不再执行操作符之后的语句;
    以上代码中,编译器永远不执行:
    if(!num_1){
    printf("num_1=0\n");
    }

    因为第一个操作数为真,编译器直接跳过逻辑或操作符之后的语句。

  • 逻辑或:一假为假,即为假
    当逻辑或操作多个表达式时,第一个操作数为假时,整个表达式都为假,编译器将不再执行操作符之后的语句;
    以上代码中,编译器永远不执行:
    if(num_2){
    printf("num_2=1\n");
    }

    因为第一个操作数为假,编译器直接跳过逻辑与操作符之后的语句。

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值