This question already has answers here:
g++ “calling” a function without parenthesis (not f() but f; ). Why does it always return 1?
(2个答案)
上个月关闭。
此处的编译器将函数指针评估为 bool(boolean) 表达式(是否为NULL),并输出输出。
https://godbolt.org/z/Psdc69。您可以检查
(2个答案)
上个月关闭。
#include <iostream>
int returnFive()
{
return 5;
}
int main()
{
std::cout << returnFive << '\n';
return 0;
}
由于编译过程没有错误,因此系统如何确定实际发送并打印到控制台的值? 最佳答案
想象一下编写的代码是否类似于
if(returnFive)
returnFive();
在这里,期望编译器检查returnFive
的函数指针是否为nullptr
。此处的编译器将函数指针评估为 bool(boolean) 表达式(是否为NULL),并输出输出。
https://godbolt.org/z/Psdc69。您可以检查
cout
是否传递了(bool)
。08-27 02:09