C++ 如果赋值较大,则存储在bool变量中的实际值

C++ 如果赋值较大,则存储在bool变量中的实际值,c++,type-conversion,C++,Type Conversion,如果我给bool变量赋值大于1,那么它存储的值是多少 bool mySwitchVariable = false; mySwitchVariable = 3; if(mySwitchVariable == 3){ cout << "3 is stored in the bool" << endl; } bool mySwitchVariable=false; myswitch变量=3; if(mySwitchVariable==3){ coutBool是一种标准

如果我给bool变量赋值大于1,那么它存储的值是多少

bool mySwitchVariable = false;
mySwitchVariable = 3;
if(mySwitchVariable == 3){
    cout << "3 is stored in the bool" << endl;
}
bool mySwitchVariable=false;
myswitch变量=3;
if(mySwitchVariable==3){

coutBool是一种标准定义的内置类型。它支持从数字类型赋值以实现C兼容性

当分配一个不同于零的数值时,布尔变量变为真。当分配零时,变为假

4.12布尔转换[conv.bool]1可以使用算术值、非范围枚举、指针或指向成员类型的指针 转换为布尔类型的prvalue。零值,空指针值, 或将空成员指针值转换为false;任何其他值均为false 转换为true。对于直接初始化(8.5),类型为 std::nullptr_t可以转换为bool类型的prvalue 结果值为false


Bool是一种标准定义的内置类型。它支持从数字类型进行赋值,以实现C兼容性

当分配一个不同于零的数值时,布尔变量变为真。当分配零时,变为假

4.12布尔转换[conv.bool]1可以使用算术值、非范围枚举、指针或指向成员类型的指针 转换为布尔类型的prvalue。零值,空指针值, 或将空成员指针值转换为false;任何其他值均为false 转换为true。对于直接初始化(8.5),类型为 std::nullptr_t可以转换为bool类型的prvalue 结果值为false


除零以外的任何值都假定为
true
“此行为是否依赖于编译器?”不正确。除零以外的任何值都假定为
true
“此行为是否依赖于编译器?”不正确。因此(mySwitchVariable==3)为真,无论分配了什么数字数据?都为(mySwitchVariable==2)是否也是真的?在执行“==”@Solti(mySwitchVariable=3)之前,是否会将“2”转换为“真”。任何非零值在分配给bool变量时都将转换为true。关于相等性,通常两个操作数必须具有相同的类型,因此mySwitchVariable==将始终为false。处理指针时会进行一些转换,但情况并非如此。因此(mySwitchVariable==3)是否为真,无论分配了什么数字数据?是否(mySwitchVariable==2)也为真?是否在执行“==”@Solti(mySwitchVariable=3)之前将“2”转换为“真”…是否(mySwitchVariable==3)为假(相等)。任何非零值在分配给bool变量时都将转换为true。关于相等性,通常两个操作数必须具有相同的类型,因此mySwitchVariable==将始终为false。在处理指针时,会进行一些转换,但情况并非如此。