C语言笔记 ——第一章 C语言的知识(十二)

1.13 逻辑运算符和表达式

1、逻辑运算符:!(非),&&,(逻辑与),||(逻辑或)

2、逻辑运算真值表

在C语言中,运算量:0为假,非0为真;运算结果:0为假,1为真。

3、举例

(1)a <= x && x <= b

从左向右结合,先进行a <= x,再计算x <= b,最后进行&&

(2)a > b && x > y

先进行a > b,再计算 x > y,最后进行&&

(3)a == b || x== y

先进行a == b,再计算x== y,最后进行||

(4)!a || a >b

先进行!a,再计算a >b,最后进行||

4、若a = 4,b = 5

(1)!a:因为a的值为真,所以!a为假,因此值为0

(2)a && b:a,b均为真,所以a && b为真,值为1

(3)a || b:a为真,所以a || b为真,值为1

(4)!a || b:a为真,所以!a 为假,但是b的值为5,为真,所以 0 || 5为1

(5)4 && 0 || 2:先计算4 && 0,值为0;再计算0 || 2,为真,值为1

(6)‘c’ && ‘d’:‘c’和‘d’转换为ASCII码值,均为非0 数值,所以 &&两侧均为真,最终计算值为1

5、短路特性

逻辑表达式求解时,并非所有的逻辑运算符都执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。

a && b:只有在a为真时,才判别b的值

a || b:只有在a为假时,才判别b的值

举例:a = 1;b = 2;c = 4; d = 3;m = 1; n = 0

(1)(m = a > b) && (n = c > b)

a > b为假,所以值为0,将0赋值给m,因为运算量为0,所以表达式为假,则0 && (n = c > b),前者为假,后者就不需要判别,此时n = 0

(2)(n = c > b) && (m = a > b)

c > b为真,所以值为1,将1赋值给m,因为运算量为1,所以表达式为真,则1 && (m = a > b),前者为真,后者仍需判别,所以m = 0

(3)(m = a > b) || (n = c > b)

a > b为假,所以值为0,将0赋值给m,因为运算量为0,所以表达式为假,则0 || (n = c > b),前者为假,后者仍需判别,所以n = 1

(4)(n = c > b) || (m = a > b)

c > b为真,所以值为1,将1赋值给m,因为运算量为1,所以表达式为真,则1 || (m = a > b),前者为真,后者就不需要判别,此时m = 1

  • 24
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值