结构体和数组

1、结构体可以存不同类型的元素,而数组只能存同一类型
2、结构体类型需要我们自已定义.数组是用别的类型加[元素个数]
3、结构体内存分配方式很特别,使用对齐原则,不一定是所有元素的字节数和,而数组一定是所有元素的字节数和.
4、结构体指针可以指针名->结构体元素名(取元素);数组不行
5、结构体嵌套可以使用点语法逐级寻找,数组不能

数组和链表

1、数组保存在栈空间中,由编译器自动分配。链表需要程序员自己申请空间,数据保存在堆空间中。

2、数组在内存中占用连续的内存空间,在编译阶段就已经确定了数组的大小,在程序运行时依据预定大小预留空间。链表的每个节点在程序运行时按需逐个申请,节点与节点之间不连续。所以数组空间利用率低,可能存在空间浪费情况。而且数组扩容很麻烦,由于空间固定,所以需要申请一个更大的空间,将旧空间的数据全部移动到新空间

3、数组插入数据和删除数据效率低,插入数据时,待插入位置的的元素和它后面的所有元素都需要向后移动,删除数据时,待删除位置后面的所有元素都需要向前移动。链表删除效率高,只需要将对应节点前一个节点指向对应节点下一个节点即可。

4、数组查询效率高,数组的内存是连续的,想要访问那个元素,直接从数组的首地址处向后偏移就可以访问到了。链表的空间是分散的,所以不具有随机访问性,如要需要访问某个位置的数据,需要从第一个数据开始找起,依次往后遍历,直到找到待查询的位置,故可能在查找某个元素时,时间复杂度达到O(N)

链表、结构体和数组对比相关推荐

  1. c语言 输入职工工资资料,通过结构体的数组来进行操作 报告,c语言课程设计报告-职工工资管理系统...

    <c语言课程设计报告-职工工资管理系统>由会员分享,可在线阅读,更多相关<c语言课程设计报告-职工工资管理系统(33页珍藏版)>请在人人文库网上搜索. 1.c 语言课程设计报告 ...

  2. Golang——结构体创建与初始化、结构体与数组、结构体与切片、结构体与map、结构体作为函数参数、结构体方法、结构体方法继承

    结构体: 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合 结构体可以很好的管理一批有联系的数据,使用结构体可以提高程序的易读性,类似于Java的类一样 不能在结构体直接赋值 字段名必须唯一 ...

  3. 对于单链表结构体中LinkList以及Lnode,*LinkList两种不同定义方式的个人理解

    在学习数据结构时,我们可以看到不同的书籍或者不同的人对于单链表结构体的定义是不一样的. 大致分为下面两种 第一种 typedef int ElemType; typedef struct Lnode{ ...

  4. C语言结构体指针数组小结

    第一次写博客,有点小激动.话不多说,进入正题. c语言最常见的几种东西:结构体,数组,指针和函数.单个定义很好理解,组合在一起就会让人头大.先说函数.数组和指针的组合. 1.函数.数组和指针的组合 包 ...

  5. c# 编程入门第六课常量,枚举,枚举转换成其他类型变量(枚举和int,转 string字符串转枚举),结构体,数组,冒泡排序,实际使用排序,方法(函数)

    c# 编程入门第六课 文章目录 c# 编程入门第六课 1. 常量 2. 枚举 3. 枚举转换成其他类型变量 3.1 枚举和int 3.2 转string 3.2 字符串转枚举 4.结构体 5.数组 7 ...

  6. C#基础之结构体枚举数组

    枚举 枚举的话,主要有两个比较吸引我的地方:一.规范常量的声明.使用和存储:二.不用记忆,方便枚举值的使用.     从规范性上来说,主要是避免同一类别的不同命名问题.诸如,在我们需要存储用户性别时, ...

  7. c语言咋样编程学号,C语言 用结构体类型数组编程实现输入5个学生的学号姓名平时成绩期中成绩和期末成绩然后输出每位...

    满意答案 zhyx520325 推荐于 2020.12.09 采纳率:41%    等级:10 已帮助:1973人 #include #include //C语言 用结构体类型数组编程实现输入5个学生 ...

  8. matlab 结构体 单元数组,matlab结构体、数组和单元数组类型的创建

    matlab结构体.数组和单元数组类型的创建 @ matlab结构体类型 通过字段赋值创建结构体 创建格式: 结构体名称.字段名称 样例: >> student.name='Alan'; ...

  9. C语言结构体中指针指向数组,指向结构体类型数组的指针的使用

    指向结构体类型数组的指针的使用 定义一个结构体类型数组,其数组名是数组的首地址,下面是关于指向结构体类型数组的指针的使用具体介绍,欢迎阅读! 定义结构体类型的指针,既可以指向数组的元素,也可以指向数组 ...

最新文章

  1. Python做web前后端交互
  2. Mybatis---全局配置解析 --根据官方文档--常用
  3. C++用法的学习心得
  4. 2.建一个新目录/oldboy的硬链接数是多少?(考试题答案系列)
  5. servlet session持久化
  6. Windows7与苹果雪豹的绝版PK
  7. 【转】QTableView 小结
  8. Top 10 盘点:2019 Java 开发者必学的测试框架、工具和库!
  9. mysql关于连接查询
  10. APP开发流程,移动应用开发流程
  11. HDFView3.1.4下载好了环境变量也配置了但就是打不开!!
  12. cdma特有效应_[多选] 相对于IS-95A,下列特征哪些是CDMA20001x系统所特有的().
  13. Hadoop经典面试题
  14. 基于python的三维射线追踪库-ttcrpy详解(4)
  15. 泛泰A850 (高通8064+720p)刷4.4专用中文recovery TWRP2.7.1.3版
  16. android手机微信收藏功能实现,微信小程序实现收藏功能
  17. 超宽屏幕比例_Hello!宽时代 21:9超宽屏显示器选购
  18. 二. Binding 详解
  19. 移动MM 支付SDK遇到的问题
  20. 使用MIPS完成汇编程序——选择排序实现

热门文章

  1. 人脸质量评估SER-FIQ (Quality estimation,CVPR 2020)代码解读
  2. OKLink区块链浏览器连续升级,欧科云链持续推动区块链技术创新
  3. OSChina 周三乱弹 ——Java酱接过了最后一棒
  4. 中国药房管理系统行业市场供需与战略研究报告
  5. istio sidecar流量接管_Istio 架构
  6. UWA性能诊断又添新利器,开启资源优化新篇章 !
  7. 高等代数 矩阵的相抵和相似(第5章)2 相似,特征值与特征向量,对角化
  8. 特殊用途的句子 - 强调/倒装
  9. MySQL创建用户授权表权限
  10. ubuntu16中英文输入法切换快捷键