前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【编程基础】C语言逻辑运算符

【编程基础】C语言逻辑运算符

作者头像
程序员互动联盟
发布2018-03-14 15:48:54
1.4K0
发布2018-03-14 15:48:54
举报
C语言关系运算符和逻辑运算符几乎无所不在,比如在循环语句、分支语句、逻辑判断等语句块中都会出现。学好这部分对学好C语言具有重要作用。

C语言中有一共有如下6中关系运算符: < 小于 <= 小于或等于 > 大于 >= 大于或等于 == 两边相等 != 两边不相等

关系运算符都是双目运算符,其结合性均为左结合。关系运算符的优先级低于算术运算符,高于赋值运算符。 在六个关系运算符中,<,<=,>,>=的优先级相同,高于==和!=,==和!=的优先级相同。他们比数学运算优先级要低。

关系运算符所在的表达式称为关系表达式,它的运算结果是一个逻辑结果,真或者假。比如:

5 > 3 结果为真 5 >= 5 结果为真 5 < 3 为假 5 <= 5 为真 3 + 2 > 4 为真

C语言中的逻辑运算符一共有三种:

&& 逻辑与(参与运算的两个量都为真时,结果才为真,否则为假) || 逻辑或(参与运算的两个量只要有一个为真,结果就为真。两个量都为假时,结果才为假) ! 逻辑非(逻辑取反,非真结果为假,非假结果为真)

与运算符&&和或运算符||均为双目运算符。具有左结合性。非运算符!为单目运算符,具有右结合性。其中与运算和或运算优先级一样,但是低于非运算。C语言规定,数字运算时,0为假,而非0为真。

注意,逻辑运算&&中,只要前面的运算后假,后面的运算就不会在计算了。

比如有下面的代码段: int a = 1, b = 2; if ((a > b) && GetVal()) { ... }

这个代码中,由于逻辑与&&前面的(a > b)这个已经不满足了,程序就不会再去执行后面的GetVal函数了,这一点尤其注意。 同样在或运算||中,如果运算符左边的已经为真,则后面的部分也不会在计算,还是上面这个a和b。

if ((a < b) || GetVal()) { ... }

这里的GetVal函数也不会执行,因为前面以及得出结论,整个结果一定是真,后面就不在计算。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-09-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员互动联盟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档