数据结构中的数组地址问题,求计算过程。
若有数组定义为int a[6][7],假设一个整型数据占4个字节,已知该数组的首地址为1000,则按行存储时数组元素int a [6][7]的地址为多少
在按行存储(row-major order)的情况下,数组元素a[i][j]的地址可以通过以下公式计算:
地址 = 首地址 + [(i * 列数) + j] * 数据类型所占字节数
在这个例子中,我们有:
因此,对于数组元素a[i][j],其地址计算如下:
地址 = 1000 + [(i * 7) + j] * 4
例如,要计算a[3][4]的地址,我们将i=3和j=4代入公式中:
地址 = 1000 + [(3 * 7) + 4] * 4
= 1000 + (21 + 4) * 4
= 1000 + 25 * 4
= 1000 + 100
= 1100
所以,a[3][4]的地址是1100。同样的方法可以用于计算数组中任何元素的地址。
同理a[6][7]的地址
= 1000 + [(6 * 7) + 7] * 4
= 1000 + (42 + 7) * 4
= 1000 + 49 * 4
= 1000 +196
= 1196