美文网首页
数组寻址公式

数组寻址公式

作者: taj3991 | 来源:发表于2020-01-09 14:18 被阅读0次

一维数组

我们拿一个长度为 10 的 int 类型的数组 int[] a = new int[10] 来举例。在我画的这个图中,计算机给数组 a[10],分配了一块连续内存空间 1000~1039,其中,内存块的首地址为 base_address = 1000。

我们知道,计算机会给每个内存单元分配一个地址,计算机通过地址来访问内存中的数据。当计算机需要随机访问数组中的某个元素时,它会首先通过下面的寻址公式,计算出该元素存储的内存地址:


a[i]_address = base_address + i * data_type_size

其中 data_type_size 表示数组中每个元素的大小。我们举的这个例子里,数组中存储的是 int 类型数据,所以 data_type_size 就为 4 个字节。

二维数组

对于 m * n 的数组,a [ i ][ j ] (i < m,j < n)的地址为:

address = base_address + ( i * n + j) * type_size

可以看到二维数组底层也是一维数组存放,只是寻址公式不一样。

相关文章

  • 数组寻址公式

    一维数组 我们拿一个长度为 10 的 int 类型的数组 int[] a = new int[10] 来举例。在我...

  • 链表

    数组的特性 内存连续分布这是这个特性,数组天然具备随机访问寻址公式:数组头地址 + 下标 * 数组类型 数组不是读...

  • 内存

    寻址公式一:【立即数】 读取内存的值 向内从中写数据 获取内存编号 公式寻址二:[reg] reg代表寄存器可以是...

  • 数据结构与算法--数组

    数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。 一维数组的寻址公式...

  • HashMap,ConcurrentHashMap,HashSe

    Map集合比List数组速度快的原因: 数组:寻址简单,可以根据角标直接找到值。但是插入和删除困难。 集合:寻址困...

  • day3 哈希表

    哈希表 是由数组跟链表组合而成的产物特点: 数组(顺序表)寻址容易 链表:插入删除容易 哈希表:寻址容易,插入删除...

  • HashMap原理解析

    HashMap解析 HashMap的寻址算法优化 JDK1.8之后的hash运算 寻址算法 n 指的是数组的长度 ...

  • Hash表

    数组(顺序表)的特点:寻址容易,插入和删除困难;链表的特点:寻址困难,插入和删除容易。综合两者,做出一种寻址容易,...

  • 博览网/boolan-STL与泛型编程-第3周笔记文章

    1、hashtable 哈希表和数组、以及链表的对比: (1).数组的特点:寻址容易,插入和删除困难;数组存储连续...

  • 中级和函数

    二 加强阶段重点学习方向 1,数组公式(将函数和数组结合) 数组公式可以认为是Excel对公式和数组的一种扩充,换...

网友评论

      本文标题:数组寻址公式

      本文链接:https://www.haomeiwen.com/subject/rvuyactx.html