二维数组和二级指针¶
- 二维数组是指向数组的数组
- 二级指针是指向指针的指针
一维数组名可以赋值给一级指针,但是二级数组名不可以赋值给二级指针
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;