指针数组
实际是个数组,用来存储指针地址
定义:
int * arr[SIZE];
数组指针变量
用来存储数组地址的数组指针变量
定义:
int intArr[5] = {....};
int (*arr)[5] = &intArr;
注意:定义数组指针变量要与实际的数组大小要一致
示例:
int main()
{
int intArr[4] = { 1,2,3,4 };
int* pointArr[4]; //指针数组
int(*arrPoint)[4];//数组指针
arrPoint = &intArr;//将intArr内存地址赋值给arrPoint数组指针变量
for (int i = 0; i < 4; i++)
{
pointArr[i] = &(intArr[i]);//将intArr里面的元素内存地址赋值给pointArr
//pointArr[i] = &(*arrPoint)[i];//也可以这样操作
}
return 0;
}
分析 pointArr[i] = &(*arrPoint)[i]
首先执行括号内的操作先用 * 间接操作符获取内存地址指向的数组(intArr),再获取相应的下标的值,再用 & 取址符获取相应位置数值的内存地址
或者写成&((*arrPoint)[i])