数组指针--指向数组的指针,是一个指针,其指向的类型是数组;
指针数组--元素为指针的数组,是一个数组,其中的元素为指针。
例如 int (*a)[5];这个是数组指针。int *a[5];这个是指针数组。
定义函数指针类型:
int max(int,int);
typedef int (*fun_ptr)(int,int);
申明变量,赋值:fun_ptr max_func=max; 也就是说,赋给函数指针的函数应该和函数指针所指的函数原型是一致的。
函数指针数组,其实还是一个数组,不过存的都是函数指针。
例如 int (*fun_ptr[2])(int,int);
#include "stdio.h"
int add1(int a1,int b1);
int add2(int a2,int b2);
void main()
{
int numa1=1,numb1=2;
int numa2=2,numb2=3;
int (*op[2])(int a,int b);
op[0]=add1;
op[1]=add2;
printf("%d %d/n",op[0](numa1,numb1),op[1](numa2,numb2));
}
int add1(int a1,int b1)
{ return a1+b1; }
int add2(int a2,int b2)
{ return a2+b2; }