【发布时间】:2010-12-01 12:50:18
【问题描述】:
if ( c ) 是否与 C++ 中的 if ( c == 0 ) 相同?
【问题讨论】:
-
请记住,0 并不总是意味着同一件事。它可以是空指针常量或整数零。
-
你的意思不是“if (c) 和 if (c!= 0) 在 C++ 中的意思一样吗?” ?
-
变量c是否属于特定类型?
-
只是诠释。但是如果 c 是指针会发生什么? 'if (c)' 检查 c 是否指向某个东西?
-
@derrdji,它与 0 进行比较,0 是 int 类型的零值。根据c的类型,会发生不同的事情。如果 c 是类的对象,则可以调用其重载的 operator==。如果 c 是双精度数,则整数将转换为双精度数。如果 c 是指针,则整数将被转换为空指针,并且与空指针的比较将检查
c是否指向其类型的有效对象(或函数)。请注意,在所有情况下,0 始终相同并且始终表示相同。它只是可以转换成许多不同的东西。
标签: c++ if-statement evaluation