05 | 数组:为什么很多编程语言中数组都从 0 开始编号
前面我们讲到一维数组的内存寻址公式,那你可以思考一下,类比一下,二维数组的内存寻址公式是怎样的呢?
一维数组的内存寻址公式:
对于一维数组 array[i]
,其内存地址可以表示为:
其中:
(\text{base_address}) 是数组的起始地址。
(i) 是数组中元素的索引。
(\text{element_size}) 是每个数组元素占用的字节数。
二维数组的内存寻址公式(行主序 - C 语言风格):
对于二维数组 matrix[i][j]
,其内存地址可以表示为:
其中:
(\text{base_address}) 是数组的起始地址。
(i) 是行索引。
(j) 是列索引。
(\text{num_columns}) 是矩阵的列数。
(\text{element_size}) 是每个数组元素占用的字节数。
二维数组的内存寻址公式(列主序 - Fortran 语言风格):
对于二维数组 matrix[i][j]
,其内存地址可以表示为:
其中:
(\text{base_address}) 是数组的起始地址。
(i) 是行索引。
(j) 是列索引。
(\text{num_rows}) 是矩阵的行数。
(\text{element_size}) 是每个数组元素占用的字节数。
这些公式展示了一般的内存寻址原理,具体实现可能因编程语言和底层实现而有所不同。
版权声明: 本文为 InfoQ 作者【鲁米】的原创文章。
原文链接:【http://xie.infoq.cn/article/fc553080864999ae804a12b96】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论