上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)