(1)一维数组:
(a0,a1,…,an-1)
(2)二维数组:
可见二维数组是元素是一维数组的一维数组。
数组一般采取顺序存储,在考研中涉及最多的就是数组元素下标的计算问题。一维数组比较简单,知道a0的位置,可以根据相对于a0的偏移量求出其后任一元素ai的位置。例如,a0存放在内存100的位置,则ai存放在100+i的位置。二维数组元素位置计算稍微复杂,要考虑行优先和列优先两种情况,下面进行详细介绍。
2.二维数组的行优先和列优先存储(www.daowen.com)
定义二维数组a:inta[4][5]。由图5-1可知,对于行优先,a[2][3]是第几个元素的求法为:行标2之前的行已填满元素,每行元素有5个,行标2所指的行的元素个数由列标指示出来,因此a[2][3]是第2×5+3+1=14个元素,a[2][3]之前有13个元素。列优先的情况类似,下面看一道例题。
图5-1 数组元素存储情况
【例5-1】 设二维数组A[6][10],每个数组元素占4个存储单元,若按行优先顺序存放的数组元素A[3][5]的存储地址是1000,求A[0][0]的存储地址。
分析:A[][]数组按行优先存储,则对于A[3][5],行标3之前的所有元素都已经填满,每行元素有10个,一共有3行;行标3所指的行中元素个数由列标指示,有6个元素。因此,A[3][5]之前一共有10×3+5=35个元素,A[3][5]的地址为1000,则A[0][0]的地址为1000-35×4=860。
说明:考生要牢记图5-1,图中箭头指示了不同优先次序的不同存储方法,凡是带有按照“行优先”或者按照“列优先”字眼的求数组中元素地址的题目,都可以用此解决。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。