char fun(char *); main() { char *s = "one", a[5] = {0}, (*f1)(char *) = fun, ch; }则对函数fun的调用语句正确的是
char s_char = 'a'; char* fun(char *){ return &s_char; }; int main() { char *s = "one", a[5] = { 0 }, *(*f1)(char *) = fun, ch; ch = *f1(s); cout << ch; return 0; } //输出 a
指针函数: 是指函数返回值是某一类型的指针,本质是一个函数。
指针函数的定义为: 类型名 函数名(参数表列); 例如: int a(int x, int y);
指针函数是一个函数,只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变量来接受,也就是说,指针函数一定有函数返回值,而且在主调函数中,函数返回值必须赋给同类型的指针变量。
函数指针: 是指向函数的指针变量,即本质是一个指针变量。
函数指针的定义为: 函数类型 (变量名)(函数形参表);例如:int (p)(int, int);
int (*P) (int x); //声明一个函数指针
p = func; //将func函数的首地址赋给指针p
//可以采用如下两种方式来通过指针调用函数
x = (*p)();
x = p();
主要的区别是一个是指针变量,一个是函数。在使用是必要要搞清楚才能正确使用
具体参考:http://nevel.cnblogs.com/p/6370264.html