反之亦然!
逻辑或操作符||
逻辑或操作符||表示“或者”的关系。 a和b只要有一个为真时a || b的值就为真为1,只有a和
b同时为假时,a || b的值才为假为0。
例4-2 用C表达式表示结论“变 量a的绝对值大于5”。
分析:当|a| > 5时有a > 5或者a < -5, 因此相应的C表达式为(a > 5) || (a < -5),当然也可用
大小由其ASCII码的值决定。
3 -5u中-5u为无符号数,故3 -5u的类型也为无符号数。3 -5u不可能等于0,因此大于0,即3 -5u > 0的值为1即真。 -5u即-5先用补码表示再被看做无符号数,两个正数相加的 结果当然不会小于0)。 能用printf函数输出值的方式判断结果是否大于0吗? printf(“?”,3-5u);
== 0 && n % 3 == 0 || n % 7 == 0。(等价于n % 6 ==
0 || n % 7 == 0) (2)x、y中至少有一个小于z 也就是x小于z或者y小于 z,相应的逻辑表达式为x < z || y < z。
分析:
(3) x、y中只有一个小于z,也就是只有x小于z或者 只有y小于z,当只有x小于z时有x小于z且y不小于z,相应
式求值,再由操作符的优先级可知,原表达式等价于((a
= 0) && (a = 5)) || (a += 1)。由于a = 0的值为0,故 子表达式(a = 0) && (a = 5)的值也为0即假,且子表达 式a = 5不会被求值。原表达式变为0 || (a += 1),此时 显然要继续对a += 1求值,求值后变量a的值变为1,结果