我们已经知道,如果不初始化声明的值,它将包含在RAM中找到的随机信息。现在,如果我们谈论的是布尔呢?默认情况下为假(0),还是也可以随机为真(1)?
答案 0 :(得分:-1)
布尔值是没有默认值的原始数据类型。没有原始数据类型具有默认值。
此外,不初始化声明的变量不一定会使它的值随机化。这取决于您的数据类型是否具有初始化它的默认构造函数(一个不带参数的隐式调用的构造函数)。普通的旧数据类型(原始类型所属)具有“空”默认构造函数,该构造函数不分配任何初始值。相反,std::string
之类的类型具有非空的默认构造函数,该构造函数将字符串初始化为定义良好的状态。
与int
和其他原始类型相反,布尔值确实具有特殊的转换运算符:若要将任何内容转换为bool
,首先要检查该值是否为0
是否返回,并根据结果返回0
或非0
字节(通常,bool
被实现为字节)。我不确定true
是否有一个单字节表示形式,或者是否有任何非0
字节是否是真正的布尔值。