写点什么

05 | 数组:为什么很多编程语言中数组都从 0 开始编号

作者:鲁米
  • 2023-12-04
    北京
  • 本文字数:543 字

    阅读完需:约 2 分钟

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}) 是每个数组元素占用的字节数。

这些公式展示了一般的内存寻址原理,具体实现可能因编程语言和底层实现而有所不同。

发布于: 刚刚阅读数: 4
用户头像

鲁米

关注

生活黑客35 2019-06-11 加入

起点不重要,迭代很重要,就需要保持充分的开放和积累;而信息越充分,结果越可靠,又要求随时调整、不断逼近真相。

评论

发布
暂无评论
05 | 数组:为什么很多编程语言中数组都从0开始编号_鲁米_InfoQ写作社区