在“C Modern approach 2nd'ed”中有一些练习我无法理解其含义。结果是1,你怎么读?谢谢你。
#include <stdio.h>
int main(void)
{
int i, j, k;
i = 5;
j = 0;
k = -5;
printf("%d", i && j || k);
return (0);
}
i && j || k
相当于
(5 && 0) || -5
相当于
0 || -5
相当于1
。
逻辑运算符产生一个值0
or 1
。
命名的运算符 ||(or) &&(and) 是布尔运算符。
他们返回 0 或 1。
为了 x&&y 返回 1,x 和 y 必须是除 0 以外的任何数字。如果其中至少一个等于 0,则返回 0。
运算符 || 如果其中至少一个不同则返回 1,则返回 0,如果它们都等于 0,则返回 0。
它被操作为
((i && j) || k)
所以
(5 && 0)=0
和
0||-5=1