c语言中缀表达式求值_C语言中的逻辑运算符

aed601fdd7a5138e58953c7f70d21b01.png

C语言提供了一组逻辑运算符:或(||)、且(&&)、非(!),分别对应于命题逻辑中的 OR、AND、NOT运算。

  • 逻辑运算符:或 ||。在命题逻辑中,当P=1或Q=1时,P||Q等于1。
  • 逻辑运算符:且 &&。在命题逻辑中,当P=1且Q=1时,P&&Q才等于1。
  • 逻辑运算符:非 !。在命题逻辑中,当P等于0时,!P等于1,反之亦然。
4bb82ba28d7787346d9fc692c3d5c958.png

逻辑运算认为所有非零的参数都表示为TRUE,而参数0表示FALSE,它们返回1(TRUE)或0(FALSE)。

逻辑运算符&&和||与对应的位级运算&和|之间一个重要区别是,如果对第一个参数求值就能确定表达式的结果,那么逻辑运算符就不会对第二个参数求值。

  • 对于 x && y:当逻辑与左边x为FALSE时,则不再进行右边y的判断,结果为FALSE。因此,若a=0,表达式 a && 5/a 将不会造成除零。
  • 对于 x || y:当逻辑或左边x为FALSE,继续右边y的判断,如果为TRUE,则逻辑或结果为TRUE;当逻辑或左边x为TRUE,则不再进行右边y的判断,即逻辑或结果为TRUE。

逻辑运算符和其它运算符优先级从低到高依次为:

逻辑非 ! > 算术运算符 > 关系运算符 > 逻辑与 &&、逻辑或 || > 赋值=

更详细的运算符优先级可参考之前发布的文章:《C运算符的优先级和结合性》

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值