c语言里的函数调用上

来源:百度知道 编辑:UC知道 时间:2024/06/14 17:44:48
有以下程序
int add (int a,int b)
{return(a+b);}
main()
{ int k,(*f)(),a=5,b=10;
f=add;
```
```
}
则以下函数调用语句错误的是
A k=(*f)(a,b);
B k=*f(a,b);
两个选项有啥区别哇?
A是什么意思哇?函数名怎么会有(*f)的丫?
上次那位师傅没解释清楚~~~~

A表示f是一个指向函数的指针变量,A表示函数的返回值是一个指针,谭浩强P260

f,这种后面不带参数列表的,表示的是函数的地址,或者说它是一个指向函数的指针。
那么既然作为指针, *f就表示 解除f的引用,即调用此函数。
(*f)(a, b)的意思,就是调用f函数,并将a, b作为参数传输