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(浏览器 ...
随机推荐
- 配置Nexus 3服务器作为Nuget包的仓库
1.进入Nexus的Web界面 在右上角点"Login" 根据提示,去服务器上查看初始密码 root@dns-server:/mnt/data# cd nexus-data roo ...
- 【Azure 应用服务】App Service for Linux环境中,如何解决字体文件缺失的情况
问题描述 部署在App Service for Linux环境中的Web App.出现了字体文件缺失的问题,页面显示本来时中文的地方,区别变为方框占位. 问题分析 在应用中,通常涉及到显示问题的有两个 ...
- 从零开始写 Docker(三)---基于 cgroups 实现资源限制
本文为从零开始写 Docker 系列第三篇,在mydocker run 基础上基于 cgroups 实现容器的资源限制. 完整代码见:https://github.com/lixd/mydocker ...
- 使用 RKE 方式搭建 K8s 集群并部署 NebulaGraph
本文由社区用户 Albert 贡献,首发于 NebulaGraph 论坛,旨在提供多一种的部署方式使用 NebulaGraph. 在本文,我将会详细地记录下我用 K8s 部署分布式图数据库 Nebul ...
- Java 递归方法的使用 + 例子
1 /* 2 * 递归方法的使用 3 * 1.递归方法:一个方法体内调用它自身 4 * 2.方法递归包含了一种隐式的循环,它会重复执行某段代码,但这种重复执行无须循环控制 5 * 递归一定要想已知方向 ...
- 因IPv4和IPv6协议不同而引发的第三方接口调用失效的问题
记录一次因IPv4和IPv6协议不同而引发的第三方接口调用失效的问题,仅供大家参考!!! 背景介绍 公司有一个微信小程序,我做后端的,负责给小程序提供数据接口.后来因为一系列原因小程序要对接一个中控( ...
- jsPlumb导航器
开源项目地址:https://gitee.com/easyxaf/jsplumb-navigator 前言 jsPlumb可用于连接DOM元素,它不依赖框架,所以与主流框架都可以无缝的集成.但比较遗憾 ...
- favorite 单词学习 主要是发音 fa - vor - it 注意 ri不连读 是自然带出来的r的尾音
favorite 单词学习 主要注意发音 [ ˈfeɪ v(ə)r ɪt ] 主要是发音 fa - vor - it 注意 ri不连读 是自然带出来的r的尾音 favor : 来自拉丁语favere, ...
- base-table 加入动态slot 流程 vue2
columns { title: '字段标题', slot: 'yourSlotName', minWidth: 50, align: 'center' }, 组件内 props: { columns ...
- MD5算法:密码学中的传奇
MD5算法起源: MD5(Message Digest Algorithm 5)算法是由MIT的计算机科学家Ronald Rivest于1991年设计的一种消息摘要算法.MD5算法最初被用于提供数据完 ...