引言

指针数组:元素为指针的数组   int* p[5];    数组指针:指向数组的指针    int(*p)[5]

一、汉字名称

指针数组是一个数组,数组指针是一个指针。就是以后面的词(宾语)决定。举例: 红苹果  是一个苹果    苹果红  是一种颜色

二、C语言定义

int* p[5]   []优先级高于*,所以p[5]先定义一个数组,int*再把p[5](包括数组中所有元素)定义为指针。         此时p仍然和[5]以数组形式存在,只是‘p[5]’这个数组中的元素都被定义成了指针。         int(*p)[5]  括号优先级高,*p定义为一个指针,我们把*p看成一个整体,用a代替,变为int a[5];可以看出这就是一个普通数组的定义。        只不过指向数组地址的a变成了*p,p是一个二级指针,他的值*p=a,而a是数组的指针。        此时*p以指针的形式存在。这个指针指向数组(第一个元素的地址)。        

注意:到底是“数组”还是“指针”,这里边的主角是 p 。
链接Raw编辑