以下代码:
int z=10,y=5;
z=z&&!y;
printf("%d\n",z);
输出0.任何人都可以解释结果如何为0?
答案 0 :(得分:3)
逻辑NOT运算符在操作数非零时产生0,如果操作数为0
则产生1。由于y
为5,!y
为0
。逻辑AND运算符产生0或1。
因此,整个表达式z && !y;
变为0
(分配给z
并打印0
)。
答案 1 :(得分:2)
&&
是一个布尔运算。在此上下文中,0
表示false,非零值表示true。由于此z&&!y
评估为0
,因此0被分配给z
。
答案 2 :(得分:2)
只是z = 10而不是(5)
10大于0因此它的计算结果为true。不是5将是0,然后1和0将是0!