数组指针:本质上是指针,这个指针指向一个数组。

int a[10] ={1,2,3,4};

int *p = a;

指针数组:本质上是数组,数组里存放的都是指针。

int* p1,p2,p3;

int *ps[3]={p1,p2,p3};

函数指针:本质上是指针,这个指针指向一个函数。

int (*p)();

*p=sum;

int sum()
{
int a=0,b=1;
return a+b;
}

指针函数:本质上是一个函数,这个函数的返回值是一个指针。

int* sum()
{
int a=0,b=1;
return &(a+b);
}