易百教程

二维数组和指针

有关C语言中的二维数组和指针,可参考以下示例代码:

#include <stdio.h>

int main(void)
{
  char matrix[3][3] = {
    { '1','2','3' },
      { '4','5','6' },
      { '7','8','9' }
  };

  printf("矩阵的地址        : %p\n", matrix);
  printf("matrix[0][0]的地址  : %p\n", &matrix[0][0]);
  printf("matrix[0]的值      : %p\n", matrix[0]);
  system("pause");
  return 0;
}

执行上面示例代码,得到以下结果:

矩阵的地址        : 00CFF860
matrix[0][0]的地址  : 00CFF860
matrix[0]的值      : 00CFF860

考虑一下以下表达式:

matrix
matrix[0]
&matrix[0][0]

下面这些都具有相同的值:

matrixchar元素的二维数组的地址,
matrix [0]char元素的一维数组的地址,是一个矩阵的子数组,
&matrix [0] [0]char类型的数组元素的地址。