数组a[m][n] 按行序为主序存放
已知二维数组a[m][n]按行序为主序存放,每个元素占L个字符,其中首地址为a[x][y]地址为Loc1,元素a[i][j]的地址为:
Loc(a[i][j]) = Loc1 + [n*(i-x)+(j-y)]*L
数组a[m][n] 按列序为主序存放
已知二维数组a[m][n]按列序为主序存放,每个元素占L个字符,其中首地址为a[x][y]地址为Loc2,元素a[i][j]的地址为:
Loc(a[i][j]) = Loc2 + [m*(j-y)+(i-x)]*L
例题
(1)已知二维数组a[5][4]按行序为主序存放,每个元素占6个字符,其中首地址为a[1][1]地址为120,元素a[4][2]的地址为:
Loc(a[4][2]) = 120 + [4*(4-1)+(2-1)]*6 = 198
(2)已知二维数组a[10][20]按列序为主序存放,每个元素占1个字符,其中首地址为a[0][0]地址为120,元素a[6][12]的地址为:
Loc(a[6][12]) = 120 + [10*12+6]*1 = 246