错字与"cout <myint".它为什么有效?

Joh*_*itb 25 c++ iostream

我有这个代码,我搜索了几个小时,为什么它无法打印我的收入

int const income = 0;
std::cout << "I'm sorry, your income is: " < income;
Run Code Online (Sandbox Code Playgroud)

直到我发现我错过了写<<但写道<.为什么编译器没有检测到这个并且错误输出?我不确定为什么比较cout有意义?

Eri*_*rik 28

整数常量0也是一个空指针常量 - 它可以与ostream's 的结果进行比较operator void *.请注意,如果常量具有任何值但是为0,则它​​将失败.