Menu
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

C 布尔值


布尔值

在编程中,你经常需要一种数据类型,它只能取两个值之一,例如

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

为此,C 语言提供了一种 bool 数据类型,称为 **布尔值**。

布尔值表示要么为 true 要么为 false 的值。


布尔变量

在 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 (true),因为 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> 头文件。


C 练习

通过练习测试自己

练习

以下示例的结果是什么?

printf("%d", 15 > 5);



开始练习



×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.