C 语言中的 Bool 值算是一个比较神奇的存在,近期学习了一下,逻辑运算关系中是比较好理解的,当表达式或运算结果作为判断时,有时会晕一下,记住一个原则和这几个值基本问题不大了:
一个原则:C语言中只有False,没有True
- 解析说明:Bool值,要么是False,要么是 非False(!False),非False也就是True,因为True有很多,但False只有几个
几个False值:除以下False,其它的全部都是True
- 数字0:int iFalse = 0;
- 字符'\0':char cFalse = '\0';
- NULL: 如 char *pFalse = NULL;
说完了,上代码:
#include <stdio.h>
int main() {
int iFalse = 0;
char cFalse = '\0';
char *pFalse = NULL;
int *piFalse = NULL;
// 有一个TRUE就是TRUE,否则FALSE
if (iFalse || cFalse || pFalse || piFalse) {
printf("True");
} else {
printf("False");
}
return 0;
}
编译运行结果:
结果上看,上述几个值均为false,当看到类似代码是,如果是false,就要反过来想可能是其中一个值,除此之外其它的值均为TRUE。
开发过程中代码判断时要判断FALSE,不要判断TRUE。
问题、意见、建议微信:13316098767 或 13316098767@qq.com