c - 这两个语句有什么区别

标签 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)

最佳答案

是的,它们将计算出相同的结果。

如果这些值中的任何一个为 0,则表达式将返回 true 并进入 if 语句(除非末尾缺少括号)

就证明而言,这或多或少符合德摩根定律

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

关于c - 这两个语句有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17095793/

相关文章:

python - 通缉: example(s) of PEG Grammar for deeply nested Python boolean expressions

c++ - 如何编写目标为 "errors"的 makefile ?

c - 自引用结构定义?

c++ - 在这种情况下重载 bool 运算符是否危险

Python 将 'True' 和 'False' 解析为字符串

javascript - 从树遍历构建 bool 表达式的算法

java - Sudo Java 调用 C 应用程序和权限

C Undeclared(第一次在这个函数中使用)

java - boolean 值与整数的内存/大小?

c++ - 这两种说法的区别? - C++