二维数组和二级指针¶
- 二维数组是指向数组的数组
- 二级指针是指向指针的指针
一维数组名可以赋值给一级指针,但是二级数组名不可以赋值给二级指针
const int LENGTH = 3;
const int WIDTH = 2;
int arr[LENGTH][WIDTH]={};
int **p;
p = arr; // Assigning to 'int **' from incompatible type 'int [3][2]'
- 对于二维指针
p而言,其声明为int*类型的一维指针 - 对于二维数组
arr而言,其声明为int[4]类型的一维数组
因为两者声明类型不一致,所以无法兼容。如果将p定义为数组指针即可操作
char (*p2)[WIDTH] = arr;