指针数组是一个数组,数组里的每一个元素都是一个指针
如:

int *a[10];

数组指针是一个指针,这个指针指向这个数组。
如:

int (*a)[10];

注意两者写法上的区别,这是因为​​()​​​优先级高于​​[]​​​,而​​[]​​​优先级高于​​*​

下面简单讲一下用法:
指针数组:将指针数组b指向二维数组a

int a[2][3];
int *b[2];
for(int i = 0; i < 2; i++)
{
b[i] = a[i];
}

数组指针:将数组指针b指向二维数组a

int a[2][3];
int (*b)[3];
b = a;