预备知识:
指针数组是数组
数组指针是指针
优先级顺序:() > [] > *
1.指针数组
指针数组是一个存放指针的数组。
指针数组是多个指针变量,以数组的形式存储在内存中,占有多个指针的存储空间。
int* arr1[10]; //整形指针的数组
char *arr2[4]; //一级字符指针的数组
char **arr3[5];//二级字符指针的数组
解释:arr 先与 [ ] 结合因此是一个数组。
2.数组指针
数组指针是一个存放数组的指针。数组指针是一个指针变量,占有内存中一个指针的存储空间。
int (*p)[10];
解释:p先和*结合,说明p是一个指针变量,然后指着指向的是一个大小为10个整型的数组。所以p是一个指针,指向一个数组,叫数组指针。
3.辨析
int arr[5];
解释:arr是一个有5个整形元素的数组。
int *parr1[10];
解释:parr1是一个指针数组,指向一个包含10个整形元素(int*)的数组。
int (*parr2)[10];
解释:parr2是一个数组指针,该指针指向一个包含10个整形元素的数组。
int (*parr3[10])[5];
解释:parr3是一个指针数组,该数组有10个元素,每一个元素为一个数组指针,每一个指针指向一个包含5个整形元素的数组。