Skip to content

二维数组和二级指针

  • 二维数组是指向数组的数组
  • 二级指针是指向指针的指针

一维数组名可以赋值给一级指针,但是二级数组名不可以赋值给二级指针

参考:二维数组名不能赋值给二级指针

    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;