设数组a[1…10,5…15]的元素以行为主序存放,每个元素占用4个存储单元,则数组元素a[i,j(1≤i≤10,5≤j≤15)的地址计算公式为(46)。

admin2019-05-11  35

问题 设数组a[1…10,5…15]的元素以行为主序存放,每个元素占用4个存储单元,则数组元素a[i,j(1≤i≤10,5≤j≤15)的地址计算公式为(46)。

选项 A、a-204+2i+j
B、a-204+40i+4j
C、a-84+i+j
D、a-64+44i+4j

答案D

解析 二维数组中的元素可以用两种方式存储:以行为主序(按行存储)或以列为主序(按列存储)。对于一个m行n列的二维数组,当数组元素以行为主序存储时,首先存储第一行的所有元素,第二行的元素存储在第一行的元素之后,第三行的所有元素存储在第二行的元素之后,依次类推,第m行的元素最后存储。每行的元素按列下标次序从低到高依次存储。同理,以列为主序存储时,先存储第一列的元素,然后是第二列的元素,依次类推,最后是第n列的元素。
   对于二维数组a[L1…H1,L2…H2],无论采用哪一种存储方式,都可以采用以下通式计算数组中元素a[i,j]在存储空间中的位置:
   loc(a[i,j])=loc(a[L1,L2])+K*d其中,k表示数组中存储在a[i,j]之前的元素数目;d表示每个数组元素占用的存储单元个数。当数组的元素以列为主序存放时,存储在a[i,j]之前的元素数目k为
   k=(i-L1)*(H2-L2+1)+(j-L2)
   因此对于题目中定义的数组a[l…10,5…15],以行为主序存放时,a[i,j](k≤i≤10, 5≤i≤15)的地址计算公式为
   loc(a[i,j)=loc(a[L1,L2])十((i—1)*11+(j—5))*4=a-64+44i+4j
转载请注明原文地址:https://kaotiyun.com/show/pgVZ777K
0

相关试题推荐
最新回复(0)