[英]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.