if(10)
是真的,但是 if(10 == true)
是假的。有人能告诉我为什么第一种情况将数字转换为 bool 而第二种情况没有吗?
最佳答案
if (10)
等同于 if (10 != 0)
,而 if (10 == true)
是 if (10 == 1)
(因为 true
被提升为 int
类型的值 1
)。
通俗地说:碰巧满足某些属性的两件事不会自动成为同一件事。
(例如, donut 和飞盘都是圆形的,但这并不意味着 donut 等于飞盘。整数和 bool 值都可以在 bool 上下文中进行评估,但这并不意味着每个整数都被评估为true 等于每个 true bool 值。)
关于c++ - 为什么我不能使用 == true 检查变量是否有值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37625613/