当我们尝试访问数组元素时会发生什么?

用户名

通过查看标题,您可能会猜出我的意思。我正在查看一些对聚合数据类型(如数组)进行运算的算法。我可以很自信地说我知道什么是数组以及为什么要使用它们。但是我不知道它们在内部如何工作。例如,当我这样做时会发生什么:

anArray [10];

幕后发生了什么?我的计算机是直接到达第10个索引(似乎效率很高),还是从0开始到索引10,然后逐步前进直到找到[10]。如果直接执行,那么关联数组呢?关联数组中的键可以是字符串,对吗?计算机是尝试从左到右匹配键还是直接到达我们放在方括号中的索引/键。

奥德留斯·梅斯卡斯卡斯

在一个普通的普通数组(FORTRAN,C,Java数组)中,您可以直接访问索引位置,而无需在其他元素上进行任何迭代。对于一维数组,将数组索引乘以数组成员大小,从而获得直接的内存偏移量(从数组开始算起)。FORTRAN的equivalence操作员将1D数组放置在2D数组(相同的内存位置)上,因此很明显如何放置它们。C还允许通过指针访问数组,很显然,内存偏移量只是将索引乘以元素的大小。

某些语言确实引入了“数组”,它们与其他数据结构(地图)非常相似。它们通常是通过哈希表实现的,并且具有恒定的访问时间-比直接访问要慢,但是对数组中元素数量的依赖性不大。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当我们尝试设置当前执行代码的寄存器时会发生什么?

来自分类Dev

当我们尝试修改字符串常量时会发生什么?

来自分类Dev

当我们在C#中访问字符串的'Length'属性时会发生什么?

来自分类Dev

当我们在Android Studio中添加DEPENDENCY时会发生什么

来自分类Dev

当我们运行julia-lang脚本时会发生什么?

来自分类Dev

当我们在Collections.synchronizedMap()中传递哈希表时会发生什么

来自分类Dev

当我们安装或卸载.msi或.exe软件包时会发生什么?

来自分类Dev

当我们git checkout一个提交时会发生什么

来自分类Dev

当我们上课时会发生什么?

来自分类Dev

当我们停止并启动ec2实例AWS时会发生什么

来自分类Dev

当我们单击SSMS的“新查询”按钮时会发生什么?

来自分类Dev

当我们运行julia-lang脚本时会发生什么?

来自分类Dev

当我们向GPIO写入0时会发生什么

来自分类Dev

当我们将参数传递给System.out.println()时会发生什么?

来自分类Dev

当我们将jar提交给风暴集群时会发生什么情况?

来自分类Dev

当我们重新加载Elixir模块时会发生什么?

来自分类Dev

当我们将char转换为大于256的数字时会发生什么?

来自分类Dev

当我们在html标记中包含错误的属性时会发生什么?

来自分类Dev

当我们在同一类中创建类的实例时会发生什么?

来自分类Dev

当我们运行var = 3命令时会发生什么

来自分类Dev

当我们改变循环中的值时会发生什么?

来自分类Dev

当我们在休眠状态下使fetch =“ join”和lazy =“ true”时会发生什么

来自分类Dev

Java-当我们在自己的类中创建类型为class的数据类型时会发生什么?

来自分类Dev

当我们将移动设备的水平方向变为垂直方向时会发生什么?

来自分类Dev

当我们在 Bean 是单例的情况下调用 new Bean() 时会发生什么?

来自分类Dev

当我们执行 sudo apt-get upgrade python3 时会发生什么

来自分类Dev

当我们编辑(追加,删除...)列表时会发生什么,每次编辑列表时我们都可以执行操作吗?

来自分类Dev

当我们第一次使用 Ember JS 启动我们的应用程序时会发生什么?

来自分类Dev

当我在数组名称中添加一些内容并尝试访问其内存位置时会发生什么?

Related 相关文章

  1. 1

    当我们尝试设置当前执行代码的寄存器时会发生什么?

  2. 2

    当我们尝试修改字符串常量时会发生什么?

  3. 3

    当我们在C#中访问字符串的'Length'属性时会发生什么?

  4. 4

    当我们在Android Studio中添加DEPENDENCY时会发生什么

  5. 5

    当我们运行julia-lang脚本时会发生什么?

  6. 6

    当我们在Collections.synchronizedMap()中传递哈希表时会发生什么

  7. 7

    当我们安装或卸载.msi或.exe软件包时会发生什么?

  8. 8

    当我们git checkout一个提交时会发生什么

  9. 9

    当我们上课时会发生什么?

  10. 10

    当我们停止并启动ec2实例AWS时会发生什么

  11. 11

    当我们单击SSMS的“新查询”按钮时会发生什么?

  12. 12

    当我们运行julia-lang脚本时会发生什么?

  13. 13

    当我们向GPIO写入0时会发生什么

  14. 14

    当我们将参数传递给System.out.println()时会发生什么?

  15. 15

    当我们将jar提交给风暴集群时会发生什么情况?

  16. 16

    当我们重新加载Elixir模块时会发生什么?

  17. 17

    当我们将char转换为大于256的数字时会发生什么?

  18. 18

    当我们在html标记中包含错误的属性时会发生什么?

  19. 19

    当我们在同一类中创建类的实例时会发生什么?

  20. 20

    当我们运行var = 3命令时会发生什么

  21. 21

    当我们改变循环中的值时会发生什么?

  22. 22

    当我们在休眠状态下使fetch =“ join”和lazy =“ true”时会发生什么

  23. 23

    Java-当我们在自己的类中创建类型为class的数据类型时会发生什么?

  24. 24

    当我们将移动设备的水平方向变为垂直方向时会发生什么?

  25. 25

    当我们在 Bean 是单例的情况下调用 new Bean() 时会发生什么?

  26. 26

    当我们执行 sudo apt-get upgrade python3 时会发生什么

  27. 27

    当我们编辑(追加,删除...)列表时会发生什么,每次编辑列表时我们都可以执行操作吗?

  28. 28

    当我们第一次使用 Ember JS 启动我们的应用程序时会发生什么?

  29. 29

    当我在数组名称中添加一些内容并尝试访问其内存位置时会发生什么?

热门标签

归档