C程序设计语言
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

4.2.1 逻辑运算符

逻辑运算符用于对操作数进行逻辑操作,参与逻辑运算的值是逻辑值。C语言共有如下3个逻辑运算符。

① && :逻辑“与”。

② || :逻辑“或”。

③! :逻辑“非”。

其中,“&&”和“||”是双目运算符,要求有两个运算量(操作数);“!”是单目运算符,只要求有一个运算量,向右结合。

逻辑运算符的功能如下。

① a&&b :只有当a、b都为真时,其结果才为真;否则,为假。

② a||b :只有当a、b都为假时,其结果才为假;否则,为真。

③ !a :a为真(非0),则!a为假;a为假,则!a为真。

逻辑运算的“真值表”如表4.1所示。

表4.1 逻辑运算真值表

在逻辑运算符中,逻辑非“!”的优先级最高,逻辑与“&&”次之,逻辑或“||”最低。而且,逻辑非“!”的优先级高于算术运算符,逻辑与“&&”、逻辑或“||”低于关系运算符但高于赋值运算符。逻辑运算符的优先级如表4.2所示。

表4.2 运算符的优先级

在逻辑运算符中,“!”(非)具有右结合性,“&&”(与)和“||”(或)具有左结合性。例如:

① a>b&&a-b等价于 (a>b)&&(a-b)

② c=0||a!=b等价于c=(0||(a!=b))

③ !a&&a-b等价于 (!a)&&(a-b)

④ !a&&a-b&&a>b等价于 ((!a)&&(a-b))&&(a>b)