1:指针数组:就是这个数组里面的元素全部是指针;即地址
如:
int a[] = {1,2,3,4,5};
int *p[] = {&a[0],&a[1],&a[2],&a[3],&a[4]};//全部元素都是地址
2:数组指针:
指向数组的指针叫数组指针
int (*p)[4]; //数组指针也就是行指针;该p指针指向4个int类型值的数组
3:函数指针:
指向函数的一个指针
返回类型是int函数的返回类型;参数是函数fun的参数类型
int (*fun)(int x, int y);
如:
/* p 是函数指针 */
赋值:
int (* p)(int, int) = & max; // &可以省略 max 是一个函数
使用:
p(a, b);//等同于 max(a,b)
4:指针函数:
指针函数返回的是一个地址;就是指针
int * fun (int x)
{
int *p = &x;
return p;
}
5:函数指针数组的使用
/*定义函数指针数组变量fun_array
(int,int) 对应于函数指针数组 指向4个函数名的函数列表
*/
int (*fun_array[4]) (int,int) = {add, sub, mul, div};
int result = fun_array[0](i,j); //表示调用第0个数组元素的函数即 add函数