指针数组:元素为指针的数组 int*p[5]
数组指针:指向数组的指针 int(*p)[5]
接下来从名称和C语言定义两方面来讲一说。数组
指针数组是一个数组,数组指针是一个指针。也就是之后面的宾语决定。
举例:指针
红苹果 是一个苹果 苹果红 是一种颜色
int*p[5]
[]优先级高于*,因此先是p[5]被定义为一个数组,int*再定义数组p[5](包括数组中全部元素)为指针。此时p仍和[5]以数组p[5]的形式存在,只是这个数组的元素成为了指针。code
int(*p)[5]
()优先级高于*,(*p)定义为一个指针,咱们把*p当作一个总体,用a代替,变为int a[5];能够看出这就是一个普通数组的定义。只不过指向数组地址的a变成了*p,也就是说p是二级指针,它的值*p=a,a是一个地址,指向数组。语言
究竟是指针仍是数组,p是主角,看它先和谁定义。在int*p[5]中,p先和[]结合定义,那么它就是数组,什么数组?指针数组。co