C 语言中布尔值的用法和案例解析

C语言中的布尔值

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

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

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

布尔变量

在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)
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,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎 点赞、收藏、关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/239998.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker安装的php 在cli中使用

1: 修改 ~/.bashrc 中新增 php7 () {ttytty -s && tty--ttydocker run \$tty \--interactive \--rm \--volume /website:/website:rw \--workdir /website/project \--networkdnmp_dnmp \dnmp_php php "$" }–networkdnmp_dnmp 重要, 不然连不上数据库, 可通…

【数字通信原理】复习笔记

哈喽&#xff89;hi~ 小伙伴们许久没有更新啦~ 花花经历了漫长的考试周~ 要被累成花干啦。今天来更新《数字通信原理》手写笔记给需要的小伙伴~ &#xff08;注:这是两套笔记&#xff0c;是需要结合来看的哦~&#xff09; 第一套的笔记请结合bilibili:张锦皓的复习课程来哦。 第…

图神经网络并在 TensorFlow 中实现

asokraju.medium.com 一、说明 本文将引导您了解图神经网络 (GNN) 并使用 TensorFlow 实现该网络。在后续的 文章中&#xff0c;我们讨论 GNN 的不同变体及其实现。这是一个分步计划&#xff1a; 图神经网络 (GNN) 的使用&#xff1a;我们首先讨论 GNN 是什么、它们如何工作以及…

项目管理常用的ChatGPT通用提示词模板

项目目标设定&#xff1a;如何设定明确、可衡量的项目目标&#xff1f; 项目计划制定&#xff1a;如何制定详细的项目计划&#xff0c;包括时间表、任务分配、资源需求等&#xff1f; 风险管理&#xff1a;如何识别和评估项目风险&#xff0c;并制定相应的应对措施&#xff1…

Leetcode—415.字符串相加【简单】

2023每日刷题&#xff08;六十八&#xff09; Leetcode—415.字符串相加 实现代码 class Solution { public:string addStrings(string num1, string num2) {string ans;int len1 num1.size();int len2 num2.size();int i len1 - 1, j len2 - 1;int sum 0, c 0;while(i…

Leetcode-230.二叉搜索树中第k小的元素(Python)

题目链接 此题看题解&#xff0c;其实这道题蛮简单的&#xff0c;需要注意二叉搜索树左小右大&#xff0c;为什么还需要看题解&#xff0c;需要反思&#xff01; # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNon…

Unity Destroy和DestroyImmediate方法

Destroy和DestroyImmediate都是Unity用于销毁游戏对象的方法。 它们的语法是&#xff1a; Destroy(gameObject); DestroyImmediate(gameObject); 都接受一个参数&#xff0c;即销毁的对象。 但是它们是有一定区别的。 1、Destroy方法它会延迟销毁&#xff0c;当我们调用它…

MFC 自定义压缩,解压缩工具

界面效果如下&#xff1a; 对外提供的接口如下&#xff1a; public: void setCallback(zp::Callback callback, void* param); bool open(const zp::String& path, bool readonly false); bool create(const zp::String& path, const zp::String& inputPath)…

【JavaWeb】Listener Filter

Listener监听器 一、Listener概述 1、监听器概念 web的三大组件之一。 2、事件监听机制 事件&#xff1a;一件事情事件源&#xff1a;事件发生的地方监听器&#xff1a;一个对象注册监听&#xff1a;将事件、事件源、监听器绑定在一起。 当事件源上发生某个事件后&#xf…

P5410 【模板】扩展 KMP/exKMP(Z 函数)

【模板】扩展 KMP/exKMP&#xff08;Z 函数&#xff09; 题目描述 给定两个字符串 a , b a,b a,b&#xff0c;你要求出两个数组&#xff1a; b b b 的 z z z 函数数组 z z z&#xff0c;即 b b b 与 b b b 的每一个后缀的 LCP 长度。 b b b 与 a a a 的每一个后缀的 LC…

关于“Python”的核心知识点整理大全37

目录 13.6.2 响应外星人和飞船碰撞 game_stats.py settings.py alien_invasion.py game_functions.py ship.py 注意 13.6.3 有外星人到达屏幕底端 game_functions.py 13.6.4 游戏结束 game_stats.py game_functions.py 13.7 确定应运行游戏的哪些部分 alien_inva…

C#学习笔记 - C#基础知识 - C#从入门到放弃 - C# 结构、类与属性

C# 入门基础知识 - C# 结构、类与属性 第9节 结构、类与属性9.1 结构的使用9.2 枚举9.3 面向对象概述9.4 类与对象的关系9.5 类的声明9.6 属性的使用9.6.1 属性9.6.2 属性使用 9.7 构造函数和析构函数9.7.1 构造函数9.7.2 析构函数 9.8 类的继承9.9 类的封装9.10 类的多态 更多…

非阻塞 IO(NIO)

文章目录 非阻塞 IO(NIO)模型驱动程序应用程序模块使用 非阻塞 IO(NIO) 上一节中 https://blog.csdn.net/tyustli/article/details/135140523&#xff0c;使用等待队列头实现了阻塞 IO 程序使用时&#xff0c;阻塞 IO 和非阻塞 IO 的区别在于文件打开的时候是否使用了 O_NONB…

Zookeeper的学习笔记

Zookeeper概念 Zookeeper是一个树形目录服务&#xff0c;简称zk。 Zookeeper是一个分布式的、开源的分布式应用程序的协调服务 Zookeeper提供主要的功能包括&#xff1a;配置管理&#xff0c;分布式锁&#xff0c;集群管理 Zookeeper命令操作 zk数据模型 zk中的每一个节点…

15-高并发-如何扩容

对于一个发展初期的系统来说&#xff0c;不太确定商业模型到底行不行&#xff0c;最好的办法是按照最小可行产品方法进行产品验证&#xff0c;因此&#xff0c;刚开始的功能会比较少&#xff0c;是一个大的单体应用&#xff0c;一般按照三层架构进行设计开发&#xff0c;使用单…

数字信号的理解

1 数字信号处理简介 数字信号处理 digital signal processing&#xff08;DSP&#xff09;经常与实际的数字系统相混淆。这两个术语都暗示了不同的概念。数字信号处理在本质上比实际的数字系统稍微抽象一些。数字系统是涉及的硬件、二进制代码或数字域。这两个术语之间的普遍混…

理解按需自动导入 unplugin-auto-import unplugin-vue-components

文章目录 unplugin-auto-import基础使用构建工具引入插件配置插件 import&#xff1a;配置自动导入规则使用预设自动引入第三方库自动导入 TypeScript 类型vue 预设的自动导入配置 dts&#xff1a;让编辑器环境识别 ts 类型eslintrc&#xff1a;解决 eslint 检查错误dirs&#…

使用PE信息查看工具和Dependency Walker工具排查因为库版本不对导致程序启动报错问题

目录 1、问题说明 2、问题分析思路 3、问题分析过程 3.1、使用Dependency Walker打开软件主程序&#xff0c;查看库与库的依赖关系&#xff0c;查看出问题的库 3.2、使用PE工具查看dll库的时间戳 3.3、解决办法 4、最后 VC常用功能开发汇总&#xff08;专栏文章列表&…

链表常见题型(1)

1.反转链表 1.1反转链表 如果我们想要反转链表&#xff0c;那应该有head的next指针指向空&#xff0c;其余结点的next指针反过来&#xff0c;指向它的上一个结点&#xff0c;那我们在执行该操作的时候就需要定义变量cur(current)表示我们当前遍历到的结点&#xff0c;变量pre(…

【后台报错】插入时sql报错,varchar撑爆

后台的一个报错。按照正常的需要复现&#xff0c;或者查一下日志。但是凭借多年经验和大胆猜测&#xff0c;以及对自己代码要自信 引用一下文章 目测7*15 105项。每个id有9个数字加上分隔符刚好十个。大概就是超过了定义的一千的varchar长度。直接改数据库就好了。 简单粗暴…