#include <iostream>
using namespace std;
int main()
{
if (!(cout << "geeks"))
cout <<" geeks ";
else
cout << "forgeeks ";
return 0;
}
为什么cout << "geeks";
在if条件中执行?我知道if语句是假的。我只期望"forgeeks "
。
答案 0 :(得分:5)
为什么cout&lt;&lt; &#34;爱好者&#34 ;;在if条件执行中?
因为否则计算机不知道它是否是真实的&#34;或&#34; false&#34;?
给定if (foo())
,必须调用函数foo
;这扩展到一般的任何表达式,必须在它们的&#34;结果之前进行评估。可以知道(但请注意,由于短路可能会跳过子表达式。)
答案 1 :(得分:0)
关注以下声明:
if (!(cout << "geeks"))
这里cout与&lt;&lt;运算符被重载以输出流作为输出,即&#34;极客&#34; 然后它将此流返回到if语句。
if语句检查条件,即if(!(&#34; geeks&#34;)),if语句看起来好像(!(true)),结果为false。
因此,其他语句执行以打印&#34; forgeeks&#34; 。