C/C++ 快速搞懂函数指针数组

我们见过将不同的指针类型放进数组存放,这样的数组我们称之为指针数组

例如:

char* a=NULL;

 char* b=NULL;

char* p[2] = {a,b};

这里面的p就是指针数组。

由上面的例子,我们知道指针可以存放在数组当中,那么小伙伴们现在肯能会很好奇,函数可以存放在数组当中吗?答案是肯定的,我们称存放函数地址的数组叫函数指针数组。下面请看一段代码

——————————————————————————————————————————

int add(int x, int y)
{
    return x + y;
}

int func3(int a,int b){
    printf("This is function 3\n");
}

 main()

{

        int (*p3)(int a,int b);//这是一个返回值为int,两个参数为int,的函数指针

        p3=add;//将函数地址存放在指针p3中

        int (*arr2[3])(int xx,int yy) = {p3,func3}; //将p3和func3存放在函数指针数组中

        return 0;

}

--------------------------------------------------------------------------

函数指针这样写

int (*p3)(int a,int b);

函数指针数组就这样写

int (*arr2[3])(int xx,int yy);

以后碰到所有类似的问题都可以这样照葫芦画瓢写,有什么不懂的请评论区留言。

如果这个仔细看完你还不懂,那说明你函数指针、指针函数、指针数组、数组指针没有学明白,请好好学习后,再来观看。

你可能感兴趣的:(c语言,c++,算法)