设二维数组a[m][n],每个数组元素占用k个存储单元,第一个数组元素的存储地址是LOC(a[0][0]),求按列优先顺序存放的数组元素a[i][j](0≤i≤m-1,0≤j≤n-1)的存储地址为( )。
A. LOC(a[0][0])+[(i-1)×n+j-1]×k
B. LOC(a[0][0])+[i×n+j]×k
C. LOC(a[0][0])+[j×m+i]×k
D. LOC(a[0][0])+[(j-1)×m+i-1]×k
由于下标从0开始,先计算偏移量,j*m+i,再乘以字节既是(j*m+i)*k,最后加上第一个数组元素的地址,所以是(j*m+i)*k+Loc(a[0][0]),选C。
这里要注意的是下标是从0开始的还是从1开始的,从1开始时,i,j都需要-1,从0开始时,不用减。
这个算的是行优先吧,题目要列优先
gxb 回复 posthuman: 我也觉得 有问题
快乐小土狗 回复 gxb: 答案没问题,列优先是C、行优先是B
C
用户登录可进行刷题及查看答案
登录后提交答案