1.指针数组
指针数组是一个数组,其每个元素都是指针。每个指针可以指向一个特定类型的数据,也可以指向函数。例如:
int* ptrArr[5]; // 声明一个包含5个整型指针的数组
2.数组指针
数组指针是指向数组的指针。它本身是一个指针,但指向的是一个数组的首地址。例如:
int (*ptrArr)[5]; // 声明一个指向包含5个整数的数组的指针
这里 ptrArr
是一个指针,指向包含5个整数的数组。通过 ptrArr
可以访问整个数组,并对其进行操作。
3.声明的符号:
*:表示一个指针
(): 表示一个函数
[]: 表示一个数组
数组后面的[ ]和函数后面的()优先级相同,它们比*的优先级高,所以int ptrArr[5]是一个指针数组,而非数组指针。
4.拆解int* ptrArr[5]:
因为[]的优先级高,所以先看ptrArr[5],这是一个包含5个数据的数组,那么这5个数据时什么类型呢? 这是再把*带进来,int* ptrArr[5],这5个数据的类型是int*类型(整数指针类型),合起来就是:int* ptrArr[5]表示的是一个数组,该数组存放5个整数指针的数据类型。