当前位置:C++技术网 > 资讯 > c语言学习笔记分享:13 函数指针数组的指针

c语言学习笔记分享:13 函数指针数组的指针

更新时间:2016-01-09 21:43:16浏览次数:1+次

下面就定义一个简单的函数指针数组指针:

char * (*(*pf)[3])(char * p);

 这里的 pf 确实是实实在在的指针。这个指针指向一个包含了 3 个元素的数组;这个数字里面存的是指向函数的指针;这些指针指向一些返回值类型为指向字符的指针、参数为一个指向字符的指针的函数。其实你不用管这么多,明白这是一个指针就 ok 了。

下面列一个简单的例子:


#include <stdio.h>
#include <string.h>
char * fun1(char * p)
{
printf("%s\n",p);
return p;
}
char * fun2(char * p)
{
printf("%s\n",p);
return p;
}
char * fun3(char * p)
{
printf("%s\n",p);
return p;
}
int main()
{
char * (*a[3])(char * p); char * (*(*pf)[3])(char * p); pf = &a;
a[0] = fun1; a[1] = &fun2; a[2] = &fun3;
pf[0][0]("fun1");
pf[0][1]("fun2");
pf[0][2]("fun3");
return 0;
}