c++ - 由于布尔值是 C++ 中的整数类型,这是否意味着“0.0”不是假的?
问题描述
背景
在 C++ 中,布尔值存储为整数:
布尔值实际上并不作为单词“true”或“false”存储在布尔变量中。相反,它们存储为整数:true 变为整数 1,false 变为整数 0。类似地,当计算布尔值时,它们实际上并不计算为“真”或“假”。它们评估为整数 0(假)或 1(真)。因为布尔值实际上存储整数,所以它们被认为是整数类型。
然而,这似乎与我所看到的相矛盾。我最近遇到了一个分支文件,它似乎暗示浮点值 0.0 也相当于 false,如下所示:
基础版本
arraySet_[m][n].resize(VALUES().maximumCellsPerRow[r], 0.0);
分支版本
arraySet_[m][n].resize(VALUES().maximumCellsPerRow[r],false);
鉴于我所看到的这种等效性,我现在想知道......
问题
即使布尔值存储为整数,C++ 是否也将float
0.0 的值解释为 false?
解决方案
推荐阅读
- redux - Redux - 处理多个同时请求
- symfony - vich 上传器和简单的管理图像未显示
- c# - 垂直自由滚动和水平快速滚动
- android - Firebase 数据库实时忽略了一些值
- reactjs - 第一个 fetch 调用返回空数组调用,但在第二个等上工作?
- android - firebaserecycleradapter 在填充之前对数据进行排序/比较/重新排序
- react-native - 关于带有 Firebase 和图像方向的 RN 相机的建议?
- amazon-web-services - 使用 API Gateway POST 到 SQS 时无法确定要授权的服务/操作名称
- mongodb - MongoDB 索引和视图
- r - 为什么函数不显示它应该显示的内容?