c++ - 为什么我不能使用 == true 检查变量是否有值?

标签 c++ c

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/

相关文章:

android - 如何确定为什么我的库中的文本大小如此之大?

c++ - 何时将 C++ 中的函数标记为虚函数?

c++ - 当我们从类中返回可变对象时 const_cast 的未定义行为

c - C 中的字符矩阵(动态分配的二维数组)

c++ - 如何从源引擎vmf计算刷点?

c++ - QtCreator的几个问题

c++ - 扩展 Lua : check number of parameters passed to a function

c - C 中 main() 的不同约定

c - 如何中断一个进程并稍后继续?

c - Scanf() 在特定情况下表现奇怪