C++ 当函数名在没有括号的情况下发送到cout时,编译器如何确定在运行时输出什么值?C++; #包括 int returnFive() { 返回5; } int main() { 想象一下,如果编写的代码是 #include <iostream> int returnFive() { return 5; } int main() { std::cout << returnFive << '\n'; return 0; }

C++ 当函数名在没有括号的情况下发送到cout时,编译器如何确定在运行时输出什么值?C++; #包括 int returnFive() { 返回5; } int main() { 想象一下,如果编写的代码是 #include <iostream> int returnFive() { return 5; } int main() { std::cout << returnFive << '\n'; return 0; },c++,function,iostream,c++-standard-library,C++,Function,Iostream,C++ Standard Library,这里的期望是编译器检查returnFive的函数指针是否为nullptr 这里的编译器将函数指针作为布尔表达式进行求值,以确定它是否为NULL,并打印输出 。您可以检查 cOUT/COD>正在通过(BoL)< /C> > /P>参见.Pox.代码中没有涉及“函数调用”。G+生成的错误是非常有信息的:调用C++中的函数必须使用括号。否则(不带括号)函数衰减为指向函数的指针,即&returnFive。您可以在此处找到答案:这是否回答了您的问题? if(returnFive) returnFive

这里的期望是编译器检查
returnFive
的函数指针是否为
nullptr

这里的编译器将函数指针作为布尔表达式进行求值,以确定它是否为NULL,并打印输出


。您可以检查<代码> cOUT/COD>正在通过<代码>(BoL)< /C> > /P>参见.Pox.代码中没有涉及“函数调用”。G+生成的错误是非常有信息的:调用C++中的函数必须使用括号。否则(不带括号)函数衰减为指向函数的指针,即
&returnFive
。您可以在此处找到答案:这是否回答了您的问题?
if(returnFive)
  returnFive();