当前位置: 首页 > news >正文

C++中bool类型的使用细节

C++中bool类型的使用细节

ANSIISO C++标准添加了一种名叫bool的新类型(对 C++来说是新的)。它的名称来源于英国数学家 George Boole,是他开发了逻辑律的数学表示法。在计算中,布尔变量的值可以是true或false。过去,C++和C一样,也没有布尔类型。在第5章和第6章中将会看到,C++将非零值解释为true,将零解释为false。然而,现在可以使用 bool类型来表示真和假了,它们分别用预定义的字面值 true 和 false 表示。也就是说,可以这样编写语句:

bool is ready=true;

字面值 true 和 false 都可以通过提升转换为 int 类型,true 被转换为1,而 false 被转换为 0:

int ans =true;int promise =falsei
//ans assigned lpromise assigned 0

另外,任何数字值或指针值都可以被隐式转换(即不用显式强制转换)为bool值。任何非零值都被转换为 true,而零被转换为 false:

bool start =-100;bool stop=0;
//start assigned true/stop assigned false
  1. 定义和初始化 bool 变量:
bool isTrue = true;   // 初始化为 true
bool isFalse = false; // 
bool flag = true;
if (flag) {// 执行条件为真的代码块
}bool a = true;
bool b = false;
bool result = a && b;  // 逻辑与运算,result 的值为 false
result = a || b;      // 逻辑或运算,result 的值为 true
result = !a;          // 逻辑非运算,result 的值为 false
  1. 函数返回值:
bool isEven(int num) {return num % 2 == 0;
}
bool result = isEven(5);  // 调用函数并将返回值赋给变量 result

需要注意的是,bool 类型的值可以隐式转换为整数类型,其中 true 转换为 1,false 转换为 0。而整数类型也可以隐式转换为 bool 类型,其中非零整数值会被转换为 true,而零值会被转换为 false。

bool b = 1;     // b 的值为 true
int num = true; // num 的值为 1

另外,C++ 还提供了一种扩展的布尔类型叫做 std::boolalpha,它可以将 true 和 false 转换为字符串 “true” 和 “false”,或者将字符串 “true” 和 “false” 转换为相应的布尔值。

bool flag = true;
std::cout << std::boolalpha << flag; // 输出 "true"

对C++感兴趣的朋友点这里:C/C++课程

http://www.lryc.cn/news/372799.html

相关文章:

  • Java 面向对象 -- Java 语言的封装、继承、多态、内部类和 Object 类
  • 【C++】和【预训练模型】实现【机器学习】【图像分类】的终极指南
  • HTML5 Web SQL数据库:浏览器中的轻量级数据库解决方案
  • C++ const关键字有多种用法举例
  • Makefile-快速掌握
  • 定个小目标之刷LeetCode热题(20)
  • 短剧分销小程序:影视产业链中的新兴力量
  • 使用fvm切换flutter版本
  • python通过selenium实现自动登录及轻松过滑块验证、点选验证码(2024-06-14)
  • 【C++】开源项目收集
  • 爬虫相关面试题
  • Spring Cloud Netflix 之 Ribbon
  • C语言怎样记住那么多的颜⾊?
  • LabVIEW软件开发任务的工作量估算方法
  • 【已解决】引入 element 组件无法使用编译错误 ERROR Failed to compile with 1 error
  • Prometheus的四种指标类型
  • FastDFS SpringBoot 客户端 Demo搭建,支持文件上传下载
  • 十大成长型思维:定位思维、商业思维、时间管理思维、学习成长思维、精力管理思维、逻辑表达思维、聚焦思维、金字塔原理、目标思维、反思思维
  • GraphQL(9):Spring Boot集成Graphql简单实例
  • vue3+ Element-Plus 点击勾选框往input中动态添加多个tag
  • 唯美仙侠手游【九幽仙域】win服务端+GM后台+详细教程
  • Qt creator day2练习
  • 哪里有海量的短视频素材,以及短视频制作教程?
  • 文章MSM_metagenomics(三):Alpha多样性分析
  • Web前端与其他前端:深度对比与差异性剖析
  • AI 客服定制:LangChain集成订单能力
  • 【计算机毕业设计】242基于微信小程序的外卖点餐系统
  • java程序监控linux服务器硬件,cpu、mem、disk等
  • 高考报志愿闲谈
  • 面试官考我Object类中的所有方法及场景使用?我...