分析下列程序:

int f1(float);
int f2(char);
int f3(float);
int f4(float);
int (*pf) (float);

则以下不合法的是: C

A int (*p)(float) = &f1;

B pf = &f4;

C pf= &f2;

D pf = f3;

 

知识点:
函数指针变量:

函数指针变量的声明方法为:

返回值类型 ( * 指针变量名) ([形参列表]);
根据定义,

int(*pf)(float);
int (*p)(float)=&f1;
pf,p都是函数指针变量。
函数地址 C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。
函数地址的获取,可以是函数名,也可以在函数名前加取地址符& 。

C错误是因为函数行参类型不匹配。

 

函数指针所指向的函数,返回值类型,形参列表必须完全匹配,对函数指针赋值可以采用以下方式pf=&p1或者pf=p1 

posted on 2017-07-24 09:54  王小东大将军  阅读(263)  评论(0编辑  收藏  举报