C语言,函数指针的小问题

如有函数 max(a,b), 为了让函数指针变量p指向函数max, 当调用该函数时,正确的方法是

  • A: (*p) max(a,b)
  • B: *pmax(a,b)
  • C: p = max(a,b)
  • D: *p = max(a,b)
阅读 4.6k
4 个回答
using namespace std;

int max(int a, int b)
{
    return (a > b ? a : b);
}

int main(int argc, char *argv[])
{
    int (*p)(int, int);
    p = max;
    cout << (*p)(5, 3) << endl;
    return 0;
}

可以测试一下

按照你的问题, A,B,C,D都不对!

让函数指针p指向max你可以:

int (*p)(int,int) = max;

或者

int (*p)(int,int) = &max;

调用该函数,你可以:

p(3,4);

或者

(*p)(3,4)

首先,需要声明p为函数指针,函数指针的概念可以参考我的博客:http://blog.csdn.net/wzy_1988/article/details/11194671

max(a,b)根据字面定义的理解,是一个参数为(int, int)返回值也是int的函数,因此函数指针p声明如下:

int (*p)(int, int);
p = max;

然后调用回调函数里调用p即可

函数名 即是函数的地址
数组名 即是数组的地址

推荐问题
logo
101 新手上路
子站问答
访问
宣传栏