首页 百科知识 逻辑运算中各运算符的优先顺序

逻辑运算中各运算符的优先顺序

时间:2024-10-17 百科知识 版权反馈
【摘要】:=0||year%400==0中有多种运算符,该怎么计算这个表达式呢?这样逐层深入分析,直到最底层的数据和运算符。当一个表达式中出现多个&&和||运算符时,这种分解对确定哪些部分执行、哪些部分不被执行很有帮助。

2.6.2 运算符嵌套

C语言中,一个表达式可以由多个运算符和运算分量组成,一个运算分量既可以是常量、变量,也可以是由运算符和数据组成的表达式。这样,在一个大的表达式里面,就可以包括若干个较小的表达式,较小的表达式又可由更小的表达式组成,这种表达式的嵌套结构就决定了运算符的嵌套使用。

例2-5 如2.4.4小节中的例子,判断给定的某一年是否是闰年。

前已讲述,如果某年能被4整除但不能被100整除,或者能被400整除,那么这一年就是闰年,否则就不是闰年。

据此编写程序如下:

img137

img138

其中,第9行比较长,含义是:year如能被4整除但同时不能被100整除,或者能被400整除时,那么year就是闰年,否则就不是闰年。

表达式leap=year%4==0&&year%100!=0||year%400==0中有多种运算符,该怎么计算这个表达式呢?由于算术运算符“%”的优先级比关系运算符“==”和“!=”的优先级高,而后者又比逻辑运算符&&和||的优先级高,并且&&比||的优先级高,而赋值运算符“=”的优先级最低,因此,这个表达式等价于:

  leap=((year%4)==0)&&((year%100)!=0)||((year%400)==0)

所以,总体来说,整个式子是赋值表达式,其右分量是逻辑或表达式;这个逻辑或的左分量是逻辑与表达式,而该逻辑与的左分量、右分量都是关系表达式……这样逐层深入分析,直到最底层的数据和运算符。

在分析复杂表达式时,可先按运算符的优先级和结合性,利用加圆括号的方式把相应部分一层层地括起来,再从最外层入手分析它的“宏观”构成。当一个表达式中出现多个&&和||运算符时,这种分解对确定哪些部分执行、哪些部分不被执行很有帮助。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈