为什么答案是假的而不是真的?

时间:2013-12-09 23:49:21

标签: c

这更像是一个逻辑问题,没有代码可以写,但即使多次尝试这个问题,我仍然得到答案是真的。

所以这就是问题所在:

int cat = 5, dog = 6, cow = 2, lizard = 10

我想找到这个表达的答案: !(!cow + !cat + !dog + !lizard)

以下是我对解决方案的尝试:

我想通过说!牛,我们在说!5。然后,我在想这个!5意味着它不会是真的,因为它是!一个整数值,从而使!cow = 0。然后我对括号内的其他内容做了同样的事情。给我:!(0)并申请!操作员,我明白了。 (因为0通常意味着它是假的吗?)

感谢帮助!谢谢!

2 个答案:

答案 0 :(得分:3)

你是对的 - 你的表达式评估为1,即为真。

答案 1 :(得分:3)

假设:

int cat = 5, dog = 6, cow = 2, lizard = 10;

值:

 !(!cow + !cat + !dog + !lizard)

1。来自true的{​​{1}}宏的值也是stdbool.h