C 语言中布尔值的用法和案例解析
C语言中的布尔值
在编程中,您经常需要一种只能有两个值的数据类型,例如:
- 是/否
- 开/关
- 真/假
为此,C语言有一个 bool
数据类型,称为布尔值。
布尔变量
在C语言中,bool
类型不是内置数据类型,例如 int
或 char
它是在 C99
中引入的,您必须导入以下头文件才能使用它:
#include <stdbool.h>
布尔变量使用 bool
关键字声明,只能取值 true
或 false
:
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)
printf("%d", 10 == 15); // 返回0(false)
printf("%d", 5 == 55); // 返回0(false)
您不仅限于只比较数字。您还可以比较布尔变量,甚至特殊的结构,例如数组:
bool isHamburgerTasty = true;
bool isPizzaTasty = true;
// 找出汉堡和披萨是否都好吃
printf("%d", isHamburgerTasty == isPizzaTasty);
记住,在使用 bool
变量时要包含 <stdbool.h>
头文件。
真实案例
让我们想一个“现实生活中的例子”,我们需要找出一个人是否有资格投票。
在下面的示例中,我们使用 >=
比较运算符来找出年龄(25)是否大于或等于投票年龄限制,该限制设置为18:
int myAge = 25;
int votingAge = 18;
printf("%d", myAge >= votingAge); // 返回1(true)
很酷,对吧?一个更好的方法(既然我们已经开始讨论了),是将上面的代码包装在一个 if...else
语句中,以便我们可以根据结果执行不同的操作:
// 如果myAge大于或等于18,则输出"Old enough to vote!"。否则输出"Not old enough to vote.":
int myAge = 25;
int votingAge = 18;
if (myAge >= votingAge) {
printf("Old enough to vote!");
} else {
printf("Not old enough to vote.");
}
最后
为了方便其他设备和平台的小伙伴观看往期文章:
微信公众号搜索:Let us Coding
,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎 点赞、收藏、关注
C 语言中布尔值的用法和案例解析的更多相关文章
- js中布尔值为false的六种情况
下面6种值转化为布尔值时为false,其他转化都为true 1.undefined(未定义,找不到值时出现) 2.null(代表空值) 3.false(布尔值的false,字符串"false ...
- Go语言中的值类型和引用类型
一.值类型和引用类型值类型:int.float.bool和string这些类型都属于值类型,使用这些类型的变量直接指向存在内存中的值,值类型的变量的值存储在栈中.当使用等号=将一个变量的值赋给另一个变 ...
- Java语言中的值传递与引用传递
Java应用程序中永远不会传递对象,而只会传递对象应用,因此,按对象引用传递. (1) Int作为参数传递时,对形参值得修改不会影响到实参: (2) StringBuffer作为参 ...
- Python中布尔值是False的所有值
在python中以下都是False:为0的,空集合,空字符串,空值None >>> bool(0) False >>> bool(-0) False >> ...
- javascript 强制转换规则 boolean 布尔值类型
摘自 <你不知道的Javascript(中卷)> p55 一句话简述, 假值表以外的值均可以认为是真值,部分浏览器可能自定义了假值表以外的假值,并不符合W3C规范,需要特殊对待. 首先也是 ...
- 前端基础之javaScript(基本类型-布尔值数组-if-while)
目录 一:javaScript基本数据类型 1.字符串类型常用方法 2.返回长度 3.移出空白 4.移除左边的空白 5.移出右边的空格 6.返回第n个字符 7.子序列位置 8.根据索引获取子序列 9. ...
- Windows Powershell 对于布尔值的处理
Windows PowerShell中有很多场景需要输入0或者1作为命令的参数.Powershell对于布尔值的逻辑处理究竟是怎样的呢?除了最常用的$True, $False, 1, 0.对于要求输入 ...
- Swift语言指南(七)--语言基础之布尔值和类型别名
原文:Swift语言指南(七)--语言基础之布尔值和类型别名 布尔值 Swift有一个基本布尔类型,叫做布尔(bool),布尔值又称逻辑值(logical),因为它只能为真(true)或假(false ...
- [日常] Go语言圣经--复数,布尔值,字符串习题
go语言圣经-复数 1.我们把形如a+bi(a,b均为实数)的数称为复数,其中a称为实部,b称为虚部,i称为虚数单位.两种精度的复数类型:complex64和complex128,分别对应float3 ...
- js基础 js自执行函数、调用递归函数、圆括号运算符、函数声明的提升 js 布尔值 ASP.NET MVC中设置跨域
js基础 目录 javascript基础 ESMAScript数据类型 DOM JS常用方法 回到顶部 javascript基础 常说的js包括三个部分:dom(文档document).bom(浏览器 ...
随机推荐
- SUB-LVDS 与LVDS 互联
SUB-LVDS 与 LVDS介绍 电气规范 今天有同学问SUB-LVDS输出是否能接到LVDS输入上,以前没用过SUB-LVDS,一起学习一下. Sub-LVDS is a differential ...
- CXP协议的传输层介绍 8b/10b编码
8b/10b编码与K码 upconnection 和downconnection均使用8b/10b编码,因此我们先简单回顾一下8b/10b吧 8B/10B编码被广泛应用到高速串行总线,如IEEE139 ...
- Html飞机大战(十五): 上线
好家伙, 我的飞机大战部署上线了 胖虎的飞机大战 感兴趣的可以去玩一下 (怕有人接受不了这个背景,我还贴心的准备切换背景按钮,然而这并没有什么用) 现在,我们停下脚步,重新审视这个游戏 ...
- DataGear 自定义数据可视化看板的图表主题
DataGear 看板的 dg-chart-theme 属性,提供了简单且强大的自定义图表主题功能. 通常,只需要设置其color.backgroundColor.actualBackgroundCo ...
- 【Azure K8S】记录AKS VMSS实例日志收集方式
问题描述 如何从AKS的VMSS集群中收集实例日志? 参考步骤 第一步:登陆VMSS实例 参考官网步骤:使用 SSH 连接到 Azure Kubernetes 服务 (AKS) 群集节点以进行维护或故 ...
- Choreographer原理
Android 系统在 VSYNC 信号的指引下,有条不紊地进行者每一帧的渲染.合成操作,使我们可以享受稳定帧率的画面.引入 VSYNC 之前的 Android 版本,渲染一帧相关的 Message ...
- Java 家庭记账本
1 public class FamliyAccount 2 { 3 4 public static void main(String[] args) 5 { 6 // TODO Auto-gener ...
- Zabbix“专家坐诊”第198期问答汇总
问题一 Q:请问一下,自带的思科SNMP交换机模板,怎么不监控down的接口? A1:这种一般在自动发现规则里加个过滤器,过滤出IFSTATUS匹配(1|3)的就能实现只发现up的端口了. A2: 1 ...
- 【Azure Power BI】Power BI获取SharePoint List列表后,如何展开List/Table中的字段,以及使用逗号拼接为一个字符串
问题描述 Power BI获取SharePoint List列表作为数据源.但是在数据源中,有Table属性值,有List属性值.如果直接展开,则会形成"笛卡尔"集的效果,变成N多 ...
- 让 js 失效 Chrome F12 右上角 settings - Preferences - Debugger - Disable JavaScript
说的可能比较长,实际上,F12 右上角 - 右小角 还是挺好找的.