第四章 指针和数组
函数指针数组指针
函数指针数组指针---用我的最后一个词为主语(用绿色标出)的方法(在C语言深度解剖(精讲版)——读书笔记18 &&自己的一些理解 讲有),还是指针;
我们可以用这种一个个切割最后一个主语的方法来理解--
函数指针数组指针= 函数指针数组 + 指针 即:指向数组的指针
函数指针数组 = 函数指针 + 数组 即:存放函数指针的数组
函数指针 = 函数 +指针 即:指向函数的指针
下面就定义一个简单的函数指针数组指针:
char *(*(*pf)[3])(char *p);
这里的pf是指针,
这个指针指向一个包含3个元素的数组
这个数组里面存储的是指向函数的指针;
下面举个例子:
#include <stdio.h>
#include <string.h>
char *fun1(char *p)
{
printf("%s\n",p);
retrun p;
}
char *fun2(char *p)
{
printf("%s\n",p);
retrun p;
}
char *fun3(char *p)
{
printf("%s\n",p);
retrun 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");
retrun 0;
}