函数指针与数组指针
一.函数指针
函数指针就是指向函数的指针,可以用与函数指针类型对应的函数名赋值,可以用来调用函数。全局函数指针常用于回调(函数)。
(1)定义函数 int fun(int i,float k); 的函数指针变量。
用指针变量代替函数名即可:int (*pfun)(int i, float k);
进一步:
int (*pfun[10])(int i, float k); //函数指针数组
[]第1优先级,从左到右。int (* (pfun[10]) )(int i, float k);
(2)声明函数 int fun(int i,float k); 的函数指针类型。
用类型替换变量,前加typedef:typedef int (*Pfun)(int i, float k);
如此便可定义函数指针变量 Pfun pfun = NULL;
也可定义函数指针数组。
(3)以上类似
int i;
typedef int Interge;
Interge i;
二.数组指针
数组指针其实是一种二级指针,其指向一维数组的地址。
int v[2][10];
int (*a)[10];//数组指针,指向一维数组的地址。
a = v;