美文网首页
数组与链表区别

数组与链表区别

作者: 王雪浩_强化班 | 来源:发表于2019-12-29 14:54 被阅读0次

    数组: 在栈空间内存中申请一块内存,使用变量间接访问这片内存

    例子: int A[3]    --> 在栈空间中"连续"申请12个字节

          A[0] A[1]  --> 使用变量A间接访问内存空间  --> A[0]与A[1]之间通过地址寻找下一个数组的目标

       

        A[0]  等价于 *(A+0)

        A[1]  等价于 *(A+1)

        数组: 地址连续,地址之间相差字节数已知  --> 地址+相差字节数=得到下一个目标的值

    特点:

    1. 由于数组申请的时候地址是连续的,而是每一个储存单位都相同,肯定可以通过计算来得到下一个元素

    2. 大小固定的,每次修改数组的值,必须检查数组空间大小  --> 效率低

    链表:在堆空间申请一些零碎的内存空间,使用地址让他们连接在一起。

    设计链表节点:

    struct data{

        int A; //数据域  -> 存放该节点的数据

        struct data *p;  //指针域  --> 存放下一个节点的地址

    }

    特点:

    1. 链表每一个节点的空间都不需要连续的,可以让系统一些零碎的内存空间使用起来

    2. 链表由于每一个节点都会存放下一个节点的地址,链表不是通过计算得到下一个节点,而是通过查看指针域来得到下一个节点

    3. 没有固定的大小,添加或者删除节点非常方便

     

    相关文章

      网友评论

          本文标题:数组与链表区别

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