C语言中true和false到底是什么?

99ANYc3cd6
预计阅读时长 7 分钟
位置: 首页 C语言 正文

在C语言中,true(真)和 false(假)主要用于逻辑判断条件控制(如 ifwhile 语句)。

c语言true和false
(图片来源网络,侵删)

C语言对真和假的判断规则非常简单:非零即真,零即假

以下是C语言中关于 truefalse 的详细解析:

核心规则:非0为真,0为假

在C语言中,没有任何关键字truefalse(在C89标准中),编译器是通过数字来辨别真假的:

  • false(假):值为 0
  • true(真):只要不是 0 都是真,包括正数(如 1, 100)、负数(如 -5)等。

示例代码:

c语言true和false
(图片来源网络,侵删)
if (1) {
    printf("1 是真\n"); // 会执行
}
if (-10) {
    printf("-10 是真\n"); // 会执行
}
if (0) {
    printf("0 是假\n"); // 不会执行
}

关系运算符和逻辑运算符的结果

在进行比较(>, <, )或逻辑运算(&&, , )时,如果条件成立,表达式的结果为 1;如果不成立,结果为 0

示例代码:

int a = (5 > 3);  // 条件成立,a 的值为 1
int b = (5 == 3); // 条件不成立,b 的值为 0
int c = !0;       // 对0取反,c 的值为 1

C99 标准引入的 <stdbool.h>

在早期的C语言中,程序员通常自己定义宏来表示 true 和 false:

#define TRUE  1
#define FALSE 0

但从 C99标准 开始,C语言正式引入了 <stdbool.h> 头文件,包含这个头文件后,你就可以直接使用 truefalse 了。

c语言true和false
(图片来源网络,侵删)
  • bool:代替 int 来声明布尔变量。
  • true:代表 1
  • false:代表 0

示例代码(现代C语言推荐写法):

#include <stdio.h>
#include <stdbool.h> // 必须包含这个头文件
int main() {
    bool isReady = true;
    bool isFinished = false;
    if (isReady) {
        printf("准备就绪!\n");
    }
    // 打印出来的值依然是 1 和 0
    printf("isReady 的值: %d\n", isReady);       // 输出 1
    printf("isFinished 的值: %d\n", isFinished); // 输出 0
    return 0;
}

常见陷阱与注意事项

  1. 赋值运算符 与 比较运算符 混淆: 这是C语言初学者最容易犯的错误。

    int a = 0;
    if (a = 5) { 
        // 注意:这里是一个赋值语句!
        // a 被赋值为 5,因为 5 是非零(真),所以这个 if 分支一定会执行!
    }

    正确的写法应该是 if (a == 5)

  2. 直接把整数当布尔值用: C语言允许你直接把一个整数放进 if 语句里判断。

    int pointer = NULL; // 或者 int flag = 0;
    if (!pointer) {
        // pointer 为 0 (NULL),!pointer 1(真),会执行这里
        printf("指针为空或标志为0\n");
    }
  • 底层逻辑0 是假,任何非 0 的数都是真。
  • 逻辑表达式:成立返回 1,不成立返回 0
  • 现代写法:包含 <stdbool.h>,使用 booltruefalse 来编写可读性更强的代码。
-- 展开阅读全文 --
头像
dede如何判断用户是否已登录?
« 上一篇 昨天
dede手机与PC如何实现内容同步?
下一篇 » 昨天

相关文章

取消
微信二维码
支付宝二维码

目录[+]