数组类型 | 存储地址的计算(a是数组首地址,len是每个数组元素所占长度) |
---|---|
一维数组 | a[i]的存储地址:a+i*len |
二维数组:a[m] [n] | 按行存储:a+(i * n+j) * len;按列存储:a+(j * m+i) * len |
例子:数组存储地址的计算示例:
1)已知一维数组a中每个元素占用2个字节,求a[10]的存储地址?
答:a[10]的存储地址为:a+10*2=a+20
2)已知二维数组a[4][5]中, 每个元素占用2个字节,求元素a[3][2]按行为主序存储的存储地址和按列为主序存储的存储地址?
答: 按行存储:a+(35+2) *2 = a+34
按列存储:a+(24+3) *2 = a+22