使用COUT打印一个未初始化的布尔(C ++)
-
23-09-2019 - |
题
我有与没有由构造初始化的bool
数据成员的类。如果我
cout << x.myBoolDataMember;
其中x
是这个类的一个对象,其中bool
尚未初始化上,有时会而不是0或1的随机数(我使用gcc
。)与Standard
这种行为符合要求?
解决方案
这种行为是符合标准的?
是的!使用垃圾的值(初始化)在你的代码调用的未定义行为强>
其他提示
是。一个未初始化的变量可以具有任意值。
只要“<<”操作不查布尔,这种行为是正确的。
这里的问题是隐藏在布尔本身:程序使用一个以上的位来存储布尔。这是依赖于实现。有时只有一个位可用于存储布尔。结果
有时多,并且它是这样的情况。
不隶属于 StackOverflow