搜索
C 教程 / 布尔值

布尔值

布尔值

在编程中,你经常需要一种只能有两个值的数据类型,比如:

  • 是/否
  • 开/关
  • 真/假

为此,C 语言有一种 bool 数据类型,被称为布尔值

布尔值表示的是 truefalse 的值。

布尔变量

在 C 中,bool 类型不是像 intchar 那样的内置数据类型。

它是在 C99 中引入的,必须导入以下头文件才能使用它:

#include <stdbool.h>

布尔变量用 bool 关键字声明,并且只能取值 truefalse

bool isProgrammingFun = true;
bool isFishTasty = false;

在尝试打印布尔变量之前,您应该知道布尔值以整数形式返回:

  • 1(或任何非 0 的数字)代表 true
  • 0 代表 false

因此,您必须使用 %d 格式说明符来打印布尔值:

实例

// 创建布尔变量
bool isProgrammingFun = true;
bool isFishTasty = false;

// 返回布尔值
printf("%d", isProgrammingFun);   // 返回 1 (true)
printf("%d", isFishTasty);        // 返回 0 (false)
运行实例 »

点击 "运行实例" 按钮查看在线实例

然而,更常见的是通过比较值和变量来返回布尔值。

比较值和变量

在编程中,比较值是非常有用的,因为它帮助我们找到答案并做出决策。

例如,你可以使用比较运算符,如大于 (>) 运算符,来比较两个值:

实例

printf("%d", 10 > 9);  // 返回 1(真),因为 10 大于 9
运行实例 »

点击 "运行实例" 按钮查看在线实例

从上面的例子中,您可以看到返回值是一个布尔值(1)。

您还可以比较两个变量:

实例

int x = 10;
int y = 9;
printf("%d", x > y);
运行实例 »

点击 "运行实例" 按钮查看在线实例

在下面的例子中,我们使用等于 (==) 运算符来比较不同的值:

实例

printf("%d", 10 == 10); // 返回 1 (true),因为 10 等于 10  
printf("%d", 10 == 15); // 返回 0 (false),因为 10 不等于 15  
printf("%d", 5 == 55);  // 返回 0 (false),因为 5 不等于 55
运行实例 »

点击 "运行实例" 按钮查看在线实例

您不仅限于比较数字。您还可以比较布尔变量,甚至特殊结构,例如数组(您将在后面的章节中了解更多信息):

实例

bool isHamburgerTasty = true;
bool isPizzaTasty = true;

// 判断汉堡和披萨是否都好吃
printf("%d", isHamburgerTasty == isPizzaTasty);
运行实例 »

点击 "运行实例" 按钮查看在线实例

记住,在处理 bool 变量时,要包含 <stdbool.h> 头文件。