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

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

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
05|数组:为什么很多编程语言中数组都从0开始编号? 05| 0 数组:为什么很多编程语言中数组都从 开始编号? 提到数组,我想你肯定不陌生,甚至还会自信地说,它很简单啊。 是的,在每一种编程语言中,基本都会有数组这种数据类型。不过,它不仅仅是一种编程语言中的数据类型,还是一种最基础的数据结构。尽管数组看起来非常 基础、简单,但是我估计很多人都并没有理解这个基础数据结构的精髓。 在大部分编程语言中,数组都是从0开始编号的,但你是否下意识地想过,为什么数组要从0开始编号,而不是从1开始呢?从1开始不是更符合人类的思维习惯 吗? 你可以带着这个问题来学习接下来的内容。 如何实现随机访问? 什么是数组?我估计你心中已经有了答案。不过,我还是想用专业的话来给你做下解释。数组(Array )是一种线性表数据结构。它用一组连续的内存空间,来存 储一组具有相同类型的数据。 “ ” 这个定义里有几个关键词,理解了这几个关键词,我想你就能彻底掌握数组的概念了。下面就从我的角度分别给你 点拨 一下。 第一是线性表 (Linear List )。顾名思义,线性表就是数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向。其实除了数组,链表、队 列、栈等也是线性表结构。 file:///F/temp/geektime/数据结构与算法之美/05数组:为什么很多编程语言中数组都从0开始编号?.html[2019/1/15 15:35:15] 05|数组:为什么很多编程语言中数组都从0开始编号? 而与它相对立的概念是非线性表,比如二叉树、堆、图等。之所以叫非线性,是因为,在非线性表中,数据之间并不是简单的前后关系。 file:///F/temp/geektime/数据结构与算法之美/05数组:为什么很多编程语言中数组都从0开始编号?.html[2019/1/15 15:35:15] 05|数组:为什么很多编程语言中数组都从0开始编号? 第二个是连续的内存空间和相同类型的数据。正是因为这两个限制,它才有了一个堪称“杀手锏”的特性:“随机访问”。但有利就有弊,这两个限制也让数组的很多 操作变得非常低效,比如要想在数组中删除、插入一个数据,为了保证连续性,就需要做大量的数据搬移工作。 说到数据的访问,那你知道数组是如何实现根据下标随机访问数组元素的吗? file:///F/temp/geektime/数据结构与算法之美/05数组:为什么很多编程语言中数组都从0开始编号?.html[2019/1/15 15:35:15] 05|数组:为什么很多编程语言中数组都从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 其中 表示数组中每个元素的大小。我们举的这个例子里,数组中存储的是 类型数据,所以 就为 个字

文档评论(0)

135****9139 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档