C语言中,对函数指针的定义和赋值

设有以下函数
   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 是相同的。