int mat[][5] = {{1, 2, 8, 9}, {2, 4, 9, 12}};
mat[0] ==> 第一行
mat[0][0] 第一行第一列,1
mat[0][1] 第一行第二列,2
mat[1] ==> 第二行
mat[1][0] 第二行第一列,2
mat[1][1] 第二行第二列,4
1. 二维数组行数和列数的获得
int m = sizeof(mat)/sizeof(mat[0]);
// 行数
int n = sizeof(mat[0])/sizeof(mat[0][0]);
// 列数
2. 二维数组转换为一维数组
(所谓一维数组就是按行序将所有的元素连到一个串行结构)的方法
强制类型转换
int* p = (int*)mat;
p[i*n + j] ⇒ i行j列上的元素
3. 使用数组指针
所谓数组指针,即为指向数组的指针,其指向的数组可以是二维数组的每一行
int (*p)[4] = mat;
p[0] // 第0行
p[1] // 第1行
4. 二维数组的定义
int** mat = new int*[5]; // 5 表示行数
for (int i = 0; i < 5; ++i)
mat[i] = new int[3]; // 3 表示列数