The bool
数据类型通常表示为0
(as false
) and 1
(as true
)。然而,也有人说true
值可以用除以下以外的值表示1
。如果后面的语句是true
,那么下面的表达式可能是不正确的。
bool x = 1;
if (x==1)
Do something..
我想知道以下语句是否可以在常用编译器上按预期工作。
-
bool x = 1;
if (x==1)
Do something.
-
bool y = 0;
if (y>0.5)
Do something..
-
bool z = 1;
if(z>0.5)
Do something...
第 4.5 条C++标准 http://www.hep.wisc.edu/~pinghc/isocppstd/conv.html says:
bool 类型的右值可以是
转换为 int 类型的右值,
false 变为零且 true
成为一体。
对于 2 和 3,发生了类型转换,因此语句将按需要工作
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)