为什么数组元素通常以0作为起始编号?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1800个文字,预计阅读时间需要8分钟。
数组,几乎每种编程语言都有的数据类型,我相信大家都不陌生。它不仅是一种编程语言的数据类型,还是一种最基础的数据结构。在大部分编程语言中,数组都是从0开始计数的。
数组,几乎是每个编程语言都有的一种数据类型,我相信大家肯定不陌生。它不仅仅是一种编程语言的数据类型,还是一种最基础的数据结构。在大部分编程语言中,数组都是从0开始编号的,但你是否下意识地想过, 为什么数组要从0开始编号,而不是从1开始呢? 从1开始不是更符合人类的思维习惯吗?
&emsp 接下来可能需要你带着这种疑惑学习下去。
什么是数组?我相信大家心中都有答案。数组——就是一种线性表存储一组具有相同类型的数据。
这里定义几个关键词,理解这几个关键词就能掌握数组这个概念了。
- 第一线性表
顾名思义,线性表就是像线一样排列的数据结构。每个线性表上的数据最多只有前和后,其实不只是数组,像队列、栈、链表等数据结构都是线性表结构。而它对立的概念是非线性表结构,比如二叉树、堆、图等,就像下图这样:
- 第二个是连续的内存空间和相同类型的数据
正是因为这两个概念,所以数组才实现了随机访问这个杀手锏特性。但有利有弊,这个特性也让数组的增删改变得非常低效,比如删除或者插入,为了保证连续性就需要做大量的数据搬移工作。
说到随机访问,你知道这是怎么实现的吗?
其实非常简单,我们拿一个长度为 10 的 int 类型的数组 int[] a = new int[10] 来举例。在下图中,计算机给数组 a 分配了一块连续的内存空间 1000-1039,其中内存的首地址为 base_address = 1000。
本文共计1800个文字,预计阅读时间需要8分钟。
数组,几乎每种编程语言都有的数据类型,我相信大家都不陌生。它不仅是一种编程语言的数据类型,还是一种最基础的数据结构。在大部分编程语言中,数组都是从0开始计数的。
数组,几乎是每个编程语言都有的一种数据类型,我相信大家肯定不陌生。它不仅仅是一种编程语言的数据类型,还是一种最基础的数据结构。在大部分编程语言中,数组都是从0开始编号的,但你是否下意识地想过, 为什么数组要从0开始编号,而不是从1开始呢? 从1开始不是更符合人类的思维习惯吗?
&emsp 接下来可能需要你带着这种疑惑学习下去。
什么是数组?我相信大家心中都有答案。数组——就是一种线性表存储一组具有相同类型的数据。
这里定义几个关键词,理解这几个关键词就能掌握数组这个概念了。
- 第一线性表
顾名思义,线性表就是像线一样排列的数据结构。每个线性表上的数据最多只有前和后,其实不只是数组,像队列、栈、链表等数据结构都是线性表结构。而它对立的概念是非线性表结构,比如二叉树、堆、图等,就像下图这样:
- 第二个是连续的内存空间和相同类型的数据
正是因为这两个概念,所以数组才实现了随机访问这个杀手锏特性。但有利有弊,这个特性也让数组的增删改变得非常低效,比如删除或者插入,为了保证连续性就需要做大量的数据搬移工作。
说到随机访问,你知道这是怎么实现的吗?
其实非常简单,我们拿一个长度为 10 的 int 类型的数组 int[] a = new int[10] 来举例。在下图中,计算机给数组 a 分配了一块连续的内存空间 1000-1039,其中内存的首地址为 base_address = 1000。

