我们见过将不同的指针类型放进数组存放,这样的数组我们称之为指针数组
例如:
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);
以后碰到所有类似的问题都可以这样照葫芦画瓢写,有什么不懂的请评论区留言。
如果这个仔细看完你还不懂,那说明你函数指针、指针函数、指针数组、数组指针没有学明白,请好好学习后,再来观看。