int *pa[5]; //指针的数组,表示(含有5个指向int型的指针的)数组
int (*pb)[5]; //数组的指针,表示(pb是一个指向含有5个int型元素的数组的)指针
int arr[4][5];
pb = &arr[1];
因为多维数组其实就是数组的数组,所以由多维数组转换而成的指针类型,应该是指向第一个内层数组的指针。arr[1]为二维数组的行,含有5个int型元素。
通过typedef可以简化上述数组的指针声明,使指向多维数组的指针更容易读写和理解
typedef int nArr[5];
nArr* pb = &arr[1];
或者直接声明
typedef int (*pArr)[5];
pArr pb = &arr[1];