C编程操作和价值

时间:2016-10-11 12:02:16

标签: c

以下代码:

int z=10,y=5;
z=z&&!y;
printf("%d\n",z);

输出0.任何人都可以解释结果如何为0?

3 个答案:

答案 0 :(得分:3)

逻辑NOT运算符在操作数非零时产生0,如果操作数为0则产生1。由于y为5,!y0。逻辑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!