繁体   English   中英

C++ 初始化值 - 布尔值

[英]C++ Initializing values - Boolean

正如我们已经知道的那样,如果我们不初始化声明的值,它将包含在 RAM 中找到的随机信息。 现在,如果我们谈论的是 bool 呢? 默认情况下它是假 (0) 还是它也可以是随机的真 (1) 值?

布尔值是没有默认值的原始数据类型。 没有原始数据类型具有默认值。

此外,不初始化声明的变量并不一定会使它的值随机。 这取决于您的数据类型是否具有初始化它的默认构造函数(一个不带参数且被隐式调用的构造函数)。 普通的旧数据类型(原始类型所属的)具有不分配任何初始值的“空”默认构造函数。 相比之下,像std::string这样的类型有一个非空的默认构造函数,它将字符串初始化为一个明确定义的状态。

然而,与int和其他原始类型相比,布尔值确实有一个特殊的转换运算符:要将任何内容转换为bool ,首先检查该值是否为0 ,并根据结果,是0或非0 byte 被返回(通常, bool被实现为字节)。 我不确定true是否有一个单字节表示,或者任何非0字节是否是真正的 bool。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM