设有二维数组int M[10][20],每个元素(整数)占2个存储单元,以行为主序,数组的起始地址为2000,元素M[8][19]的存储位置为( )。
【正确答案】:2358
【题目解析】:
题目考查存储位置下标。
对于二维数组a[m][n],如果每个元素占k个存储单元,以行为主序为例,讨论数组元素a[i] [j]位置与下标的关系。
由于下标从0开始,元素a[i] [j]之前已经有i行元素,每行有n个元素,在第i行, 有j+1个元素,总共有n*i+j+1个元素,第一个元素与a[i] [j]相差n*i+j+1-1个位置, 故 a[i] [j]的位置为:loc[i, j]=loc[0,0]+(n*i+j)*k。
本题中,对于二维数组M[10][20],n=20;k=2;loc[0,0]=2000,故:
loc[8,19]=2000+(20*8+19)*2=2358
发表评论 取消回复