首页 > 后端开发 > C++ > 正文

C 和 C 中 Bool 转换为 Int 总是 0 或 1 吗?

Susan Sarandon
发布: 2024-11-15 08:41:03
原创
363 人浏览过

Is Bool Conversion to Int Always 0 or 1 in C   and C?

Bool 转换为 Int:保证为 0 或 1?

在 C 和 C 等编程语言中,bool 常用来表示true 和 false 的布尔值。然而,在幕后,这些值通常存储为整数。这就提出了一个问题:当 bool 转换为 int 时,结果是否保证为 0 或 1?

C

在 C 中,答案是响亮的是。根据 C 标准 (§4.5/4),“bool 类型的右值可以转换为 int 类型的右值,其中 false 变为 0,true 变为 1。”这意味着当 C 中 bool 转换为 int 时,结果将始终为 0 或 1。

C

在 C 中,情况略有不同但同样清楚。根据 C 标准 (§6.3.1.2/1),“当任何标量值转换为 _Bool 时,如果该值比较等于 0,则结​​果为 0;否则,结果为 1。”这意味着当 bool(在 C 中表示为 _Bool)转换为 int 时,结果将再次为 0 或 1。

实际示例

来说明代码中的行为:

int a = 2;
bool b = a;
int c = 3 + b; // 4
登录后复制

在此示例中,bool 变量 b 被初始化为 int a 的值(即 2),但由于 bool 值存储为 0 或 1,因此 b 变为 1 . 随后添加 3 会导致 c 被赋值为 4。这确认了 bool 被转换为 int 作为 1,保证结果为 0 或 1。

以上是C 和 C 中 Bool 转换为 Int 总是 0 或 1 吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

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