我正在检查一个代码并被这一行搞糊涂了。
if( cout > 0 )
{
//some statements
}
请告诉我我们是否可以像那样使用cout
。它将如何运作?
最佳答案
cout
是 ostream
类型(或派生的某种类型)的变量。 ostream
转换为 void *
(pre-C++11) 或 bool
(C++11) - 这两种转换函数检查文件流中的“错误状态”,如果有错误则分别返回 NULL
或 false
)。这两个都将与零进行比较,因为零分别与 NULL
和 false
相同,因此语句变为 (void *)cout > NULL
或(bool) cout > false
,如果 cout
不是 NULL
或 false
(这意味着“没有错误”)。
[注意:当使用 p > NULL
时,与 NULL
的指针比较可能无法正常工作,因为指针可能是“负数”,在这种情况下它不是大于 NULL
- 我更愿意将 if (cout != 0)
或 if (!cout)
视为更安全/更好的选择] .
关于c++ - 这个 cout 将如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20074032/