引言
指针数组:元素为指针的数组 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编辑