C ++初始化值-布尔值

时间:2019-03-09 17:07:47

标签: c++ initialization

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

1 个答案:

答案 0 :(得分:-1)

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

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

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