【C语言的逻辑运算符&&、||、&、|】

C语言的逻辑运算符

针对C语言系列–004章的&&运算符的超链接

一、逻辑运算符

&& 逻辑与(并且),连接两个表达式,运算结果为bool类型
|| 逻辑或(或者),连接两个表达式,运算结果为bool类型
! 逻辑非 (取反),一元表达式,如果布尔型表达式为True,再+!整个式子结果为False,如果为False,再+!则为True

此时你是不是想起了位运算符的按位与 & 和按位或 | 了

先给大家回忆一下单目、双目、三目运算符:

单目运算符:(一元运算符)指运算所需变量为一个,运算过程中只有一个操作数。(例如:!、~、++,- -、&(取地址符)
双目运算符:运算所需变量为两个,运算过程中需要两个操作数。(例如:+、-、*、/、=、==、&、|、&&、||…
三目运算符:C语言只有一个 ? : 需要三个操作数。

不要惊讶&为什么还有个单目运算符,&在C语言中有两种意思,一种是单目运算符,取地址;一种是位运算符——按位与,双目运算符。

好咱继续>>>

按位与&(与)二进制的按位操作符,都为1(真)时,结果为1(真),否则为0(假)
按位或 |(或)二进制的按位操作符,有1(真)时,结果为1(真),都是0(假)时,结果为0(假)

二、&与&&,| 与 || 的区别

通过一、的介绍,我们不难得出结论一
结论一:
&既是逻辑运算符也是位运算符,作为取地址符时还是单目运算符;&&只是逻辑运算符和双目运算符。

| 既是逻辑运算符也是位运算符;||只是逻辑运算符和双目运算符。
结论二(补充):
&不具有短路效果,即左边Flase,右边还会执行;&&具有短路效果,左边为Flase,右边则不执行。

|不具有短路效果,即左边True,右边还会执行;||具有短路效果,左边为True,右边则不执行

平常实际运用中,用&&和 || 作逻辑运算符多一些,因为具有短路效果,提升了程序的运行效率,起到程序优化作用。


本文仅对C语言系列–004章的&&补充说明,其他具体介绍并未详解,仅供参考。(求生欲:小白专属)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

afool�‍♂️

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值