”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 将布尔值转换为整数总是得到 0 或 1 吗?

将布尔值转换为整数总是得到 0 或 1 吗?

发布于2024-11-18
浏览:818

Does Converting a Boolean to an Integer Always Result in 0 or 1?

布尔值转换为整数时是否总是为零或一?

当将布尔值转换为整数时,许多编译器似乎仅保留 0 或 1,这引发了有关此行为可靠性的问题。让我们看一个例子:

int a = 2;
bool b = a;
int c = 3   b; // What is the result? 4 or 5?

答案: 是的,bool 转换为整数时保证为 0 或 1。

C 语言:

C 标准 (§4.5/4) 明确指出:“bool 类型的右值可以转换为 int 类型的右值, false 变为 0,true 变为 1。"

在 C:

当一个值转换为 _Bool 时,它变为 0 或 1 (§6.3.1.2/ 1): "当任何标量值转换为_Bool时,如果该值比较等于0,则结果为0;否则,结果为1."

转换为 int 时,过程很简单,因为 int 可以保存 0 和 1,因此值没有变化 (§6.3.1.3)。

最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3