问题 单项选择题

程序中若有如下说明和定义语句:
char fun(char *);
main()
char * s="one", a[5]=0,(* f1)()=fun,ch;


以下选项中对函数fun的正确调用语句是( )。

A.(* f1)(a);

B.* f1(* s);

C.fun(&a);

D.ch=* f1(s)

答案

参考答案:A

解析: 程序中定义的n是一个指向函数fun的指针变量,即将函数fun的人口地址赋给指针变量f1,这时f1和fun都指向函数的开头,调用*f1就是调用函数fun。注意,此时用函数指针变量调用函数时,只需用(*f1)代替函数名fun即可,再在(*f1)后的括号中根据需要写上实参,所以(%f1)(a);相当于fun(a);故选项A)是正确的。

综合
填空题