设有以下函数
void fun(int n,char * s) {……}
则下面对函数指针的定义和赋值均是正确的是
A)void (*pf)(); pf=fun;
B)void pf(); pf=fun;
C)void *pf(); *pf=fun;
D)void (*pf)(int, char);pf=&fun;
自己选的C 正确吗
没有一个对的,请楼主再检查检查
void (*pf)(int, char*);
pf=&fun;
首先,选择题的问题是两个,函数指针的定义及函数指针做形参时的赋值。对于B和C选项,其定义的不是函数指针,B定义的是一个普通函数,C定义的
是指针类型的函数。函数指针要求,其函数指针一定要保持参数和返回值与指向的函数一致,A选项无形参,D选项的形参 char 错误。所以没有正确的
选项,另外,函数名就是其自身的首地址,所以 pf = & fun 和 pf = fun 是相同的。