如果将一个M
行N
列矩阵A
按行线性存储,你可以定义
int A1[M][N];
或
int A2[M*N];
二维数组A2在内存里也是线性存储的
那么,你可以通过下面方式用指针来访问矩阵元素(i,j)
int *p = &A1[0][0]; // p指向第一个矩阵元素
*(p + i * N + j) = 1; // 将矩阵元素(i,j)赋值1
int *q = A2; // q指向一维数组首地址,即第一个元素
*(q + i * N + j) = 2; // 将矩阵元素(i,j)赋值2