问题
单项选择题
程序中若有如下说明和定义语句: char fun(char *); main() {char * s="one", a[5]={0},(* f1)()=fun,ch;┆ } 以下选项中对函数fun的正确调用语句是( )。
A.(* f1)(;
B.* f1(* ;
C.fun(&;
D.ch=* f1(
答案
参考答案:A
解析: 程序中定义的n是一个指向函数fun的指针变量,即将函数fun的人口地址赋给指针变量f1,这时f1和fun都指向函数的开头,调用*f1就是调用函数fun。注意,此时用函数指针变量调用函数时,只需用(*f1)代替函数名fun即可,再在(*f1)后的括号中根据需要写上实参,所以(%f1)(a);相当于fun(a);故选项A)是正确的。