C语言的逻辑运算符
针对C语言系列–004章的&&运算符的超链接
一、逻辑运算符
&& 逻辑与(并且),连接两个表达式,运算结果为bool类型 || 逻辑或(或者),连接两个表达式,运算结果为bool类型 ! 逻辑非 (取反),一元表达式,如果布尔型表达式为True,再+!整个式子结果为False,如果为False,再+!则为True
此时你是不是想起了位运算符的按位与 & 和按位或 | 了
先给大家回忆一下单目、双目、三目运算符:
单目运算符:(一元运算符)指运算所需变量为一个,运算过程中只有一个操作数。(例如:!、~、++,- -、&(取地址符)) 双目运算符:运算所需变量为两个,运算过程中需要两个操作数。(例如:+、-、*、/、=、==、&、|、&&、||…) 三目运算符:C语言只有一个 ? : 需要三个操作数。
不要惊讶&为什么还有个单目运算符,&在C语言中有两种意思,一种是单目运算符,取地址;一种是位运算符——按位与,双目运算符。
好咱继续>>>
按位与&:(与)二进制的按位操作符,都为1(真)时,结果为1(真),否则为0(假) 按位或 |:(或)二进制的按位操作符,有1(真)时,结果为1(真),都是0(假)时,结果为0(假)
二、&与&&,| 与 || 的区别
通过一、的介绍,我们不难得出结论一 结论一: &既是逻辑运算符也是位运算符,作为取地址符时还是单目运算符;&&只是逻辑运算符和双目运算符。
| 既是逻辑运算符也是位运算符;||只是逻辑运算符和双目运算符。 结论二(补充): &不具有短路效果,即左边Flase,右边还会执行;&&具有短路效果,左边为Flase,右边则不执行。
|不具有短路效果,即左边True,右边还会执行;||具有短路效果,左边为True,右边则不执行
平常实际运用中,用&&和 || 作逻辑运算符多一些,因为具有短路效果,提升了程序的运行效率,起到程序优化作用。
本文仅对C语言系列–004章的&&补充说明,其他具体介绍并未详解,仅供参考。(求生欲:小白专属)
|