数组看似简单,但掌握精髓的却没有多少;他既是编程语言中的数据类型,又是最基础的数据结构;
一个小问题:
为什么数据要从0开始编号,而不是 从1开始呢?
正文带着问题进入学习
如何实现随机访问? 什么是数组?数组(array)是一种线性表数据结构,它用一组连续的内存空间来储存一组具有相同类型的数据。
我们从定义来分析:
线性表:
是数据排成像一条线一样的结构。每个线性表上的数据最多有前后两个方向。诸如数组,链表,队列,栈等都是线性表结构。
连续的内存空间和相同类型的数据:
这个特性是数组“随机访问”速度飞快的缘由,这也导致了从数组中删除、插入数据,为了保证连续性,需要大量的工作量
计算机会给每个内存单元分配一个地址,计算机通过地址来访问内存中的数据。
当计算机随机访问数组中的某个元素时,它会首先通过下面的寻址公式,计算出该元素的内存地址:
a[i]_address = base_address + i * data_type_size