如果分配了较大的值,则存储在布尔变量中的实际值
actual value stored in a bool variable if a large value is assigned
如果我为布尔变量分配一个大于 1 的值,存储在布尔变量中的值会是什么?
bool mySwitchVariable = false;
mySwitchVariable = 3;
if(mySwitchVariable == 3){
cout << "3 is stored in the bool" << endl;
}
这是规范中定义的吗?此行为是否依赖于编译器?
谢谢
Bool 是标准定义的内置类型。它支持从数字类型赋值以实现 C 兼容性。
当分配一个不同于零的数值时,布尔变量变为 true。当分配零时,它变为假。
4.12 布尔转换 [conv.bool] 1 算术、无作用域枚举、指针或指向成员类型的指针的 prvalue 可以是 转换为布尔类型的 prvalue 值。零值、空指针值、 或空成员指针值转换为 false;任何其他值为 转换为 true。对于直接初始化 (8.5),prvalue 的类型 std::nullptr_t 可以转换为 bool 类型的 prvalue;这 结果值为假。
相关文章:
- 如何在 c++ 中让布尔变量返回为 0 或 1 而不是真或假?
- 将布尔变量添加到 int
- 如何使布尔变量仅在设置为 true 时才为真?
- C++中未初始化成员布尔变量的默认值是多少?
- 我可以在C++中延迟布尔变量的求值吗
- 全局销毁期间全局布尔变量可靠吗?
- 使用动态布尔变量实例化模板
- 如何检查布尔变量是否为真
- 布尔变量 if 语句 C++ 上的分段错误
- 为什么我的布尔变量会更改(C )
- 允许使用布尔变量和值的功能
- 非标准语法;使用"&"创建指向成员的指针。访问布尔变量
- 在一个语句中对原子布尔变量进行多次赋值
- 在C 中的三个布尔变量之间切换
- 使用布尔变量的运算符"=="的性能?
- 当只有一个线程写入 c++ 中的布尔变量时,是否存在争用条件
- 布尔变量的线程同步
- 如果分配了较大的值,则存储在布尔变量中的实际值
- 布尔变量的最佳大小是多少
- 如何在非布尔函数中通过引用传递布尔变量