以行为主序,数组的起始地址为2000,元素M[5][10]的存储位置为( )

"> 以行为主序,数组的起始地址为2000,元素M[5][10]的存储位置为( )

">

设有二维数组int M[10][20],每个元素(整数)占2个存储单元,以行为主序,数组的起始地址为2000,元素M[5][10]的存储位置为( )

设有二维数组int M[10][20],每个元素(整数)占2个存储单元,以行为主序,数组的起始地址为2000,元素M[5][10]的存储位置为( )


【正确答案】:2220
【题目解析】:

题目考查存储位置下标。

对于二维数组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[5,10]=2000+(20*5+10)*2=2220


Top