首页 > 后端开发 > C++ > bool 变量在转换为整数时是否保证转换为 0 或 1?

bool 变量在转换为整数时是否保证转换为 0 或 1?

Linda Hamilton
发布: 2024-11-12 14:46:02
原创
585 人浏览过

Is a bool variable guaranteed to convert to 0 or 1 when cast to an integer?

Bool 转换为 Int 时的保证值

问题:

是否保证存储在 bool 中的值变量转换为整数 (int) 时会是 0 或 1?

答案:

是的,可以保证。

原因:

C 和 C 编程语言都专门定义了 bool 值转换为整数时的行为。

在 C 中,C 标准(第 4.5 节) /4) 状态:

“bool 类型的右值可以转换为 int 类型的右值,其中 false 变为 0,true 变为 1。”

在 C 语言中,C 标准 ( §6.3.1.2/1) 规定:

“当任何标量值转换为 _Bool 时,如果该值比较等于 0,则结​​果为 0;否则,结果为 1。”

当 _Bool 值转换为 int 时,该值保持不变,因为 int 可以同时容纳 0 和 1 (§6.3.1.3)。

因此,您可以依赖以下事实: bool 变量在转换为 int 时将始终包含 0 或 1。

以上是bool 变量在转换为整数时是否保证转换为 0 或 1?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板