我有一个关于函数调用的问题,如下例所示:
int main()
{
int a, b;
cin >> a >> b >> endl;
cout << *f(a,b);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
那么*f(a,b)是一个有效的函数调用吗?
编辑::抱歉错误,我现在修理他们我有点累了
无论如何f
,*f(a, b)
尝试将间接运算符应用于结果f(a, b)
.
如果f
是一个函数指针,你试图调用它,你可以这样做:
(*f)(a, b)
Run Code Online (Sandbox Code Playgroud)
做得f(a, b)
更简单.
代码至少可能是合理的.对于它的工作,f
必须被定义为返回以下两种各种各样的事情的函数:要么返回一个指针,在这种情况下,*
解引用指针,所以不管它是指向在被发送到标准输出.否则,f
必须返回一些用户定义的类型,该类型定义operator *
为返回与其兼容的内容cout
.