题目:
若有以下说明和定义,在必要的赋值之后,对fun函数的正确调用语句是()。
int fun ( int *c){ ...}
void main()
{
int (*a) (int *)=fun, *b(), w[10], c;
...
}
A. a=a(w); B. (*a)(&c); C. b=*b(w); D. fun(b);
【答案】B.
【解析】
在答案A中,a(w)调用正确,但将其返回值赋值给a是错误的,因为返回值是整型数,而a是一函数指针,所以答案A是错误的。
在答案C中,因b是一个返回值为整型指针的函数,*b(w)本身就是错误的。
在答案D中,b后面省略了括号,因为b是函数,故也是错误的。
而对于答案B来说,因为a指向了函数fun,所以它等价于fun(&c)的调用,是正确的。
【注】a为一个函数指针,b为一个指针函数。