这两个陈述有什么区别

时间:2013-06-13 19:51:46

标签: c boolean boolean-expression

我想知道C中这两个语句之间的区别是什么?它们是否相同?任何逻辑证明它们是否相同。

if (!(b[i]&&c[i+1]&&c[i+2]&&d[i+3]))

if (((b[i] == 0|| c[i+1] == 0)|| c[i+2] == 0)|| d[i+3] == 0)

2 个答案:

答案 0 :(得分:4)

是的,他们都会评估相同的结果。

如果这些值中的任何一个是0,那么表达式将返回true并输入if语句(除非最后缺少的parens)

就证据而言,这或多或少是德莫根定律

http://www.seas.upenn.edu/~ese570/Boolean_Identities.pdf

答案 1 :(得分:1)

他们是一样的!有关证明,您可以阅读De Morgan's laws