- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
本章主要内容 抽象数据类型 结构体 共用体 枚举数据类型 抽象数据类型 从基本数据类型到抽象数据类型 二进制数——类型本不存在 在早期的机器指令及汇编语言中,数据对象均用二进制数表示,没有类型的概念 内存里存的内容,你认为它是什么,它就是什么 抽象数据类型 从基本数据类型到抽象数据类型 在高级语言引入了基本数据类型 整型、浮点型、字符型等 不同语言会定义不同的基本类型 基本数据类型并不能方便地解决所有问题 有些语言(如PL/1)中试图规定较多的类型,如数组、树、栈等,但实践证明不是个好办法 抽象数据类型 从基本数据类型到抽象数据类型 用户自己构造数据类型-复合数据类型 由基本数据类型迭代派生而来,表示复杂的数据对象,典型的代表就是“结构体” 抽象数据类型(Abstract Data Type,简称ADT) 在复合数据类型基础上增加了对数据的操作 抽象数据类型进而进化为“类(Class)” Class是Object-Oriented的一个重要概念 本章主要内容 抽象数据类型 结构体 共用体 枚举数据类型 结构体数据类型 为什么要使用结构体(实例引出) 实现学生成绩管理 学生信息、成绩的保存、求平均成绩等 结构体数据类型 实现学生成绩管理 目前可以想到的解决方法 使用数组 结构体数据类型 使用数组实现学生成绩管理 结构体数据类型 使用数组实现学生成绩管理 数组方案的内存分配 结构体数据类型 使用数组实现学生成绩管理 数组方案的缺点 内存分配分散,寻址效率低 容易发生数组数据错位 结构零散,不容易管理 复杂度高 最直观的解决方案是将每个学生的相关信息集中到一起,统一管理 结构体数据类型 希望的管理方式 结构体数据类型 结构体类型 结构体可以将不同类型的数据成员组织到统一的变量名之下 结构体的定义 声明结构体模板 定义结构体变量 结构体数据类型 结构体的定义 声明结构体模板 结构体数据类型 结构体的定义 声明结构体模板 结构体名并不是结构体变量名,只是一个标签 结构体模板只是声明了一种数据类型,定义了数据的组织形式,并未声明结构体类型的变量 编译器不为结构体模板分配内存 结构体数据类型 结构体的定义 定义结构体变量 先定义结构体模板,再定义变量名 在定义模板的同时定义变量 不指定结构体标签,直接定义结构体变量 结构体数据类型 结构体的定义 定义结构体变量 在定义模板的同时定义变量 结构体数据类型 结构体的定义 定义结构体变量 不指定结构体标签,直接定义结构体变量 结构体数据类型 使用typedef定义数据类型 为现有的数据类型定义一个别名 别名通常使用大写字母 并未定义一个新的数据类型 定义后别名和原名具有同样的功能,可以互换 结构体数据类型 使用typedef定义数据类型别名 为结构体定义别名 结构体数据类型 使用typedef定义数据类型别名 定义后别名和原名通用 结构体数据类型 嵌套的结构体 在一个结构体内其成员可以是另一个结构体 结构体数据类型 结构体变量的初始化 不嵌套情形 嵌套情形 结构体数据类型 结构体变量成员的引用 圆点运算符 结构体变量名.成员名 嵌套情形 以级联方式逐级访问 结构体数据类型 结构体变量的整体赋值 同类型的结构体允许整体赋值 相当于按结构体成员顺序逐一赋值 字符数组赋值时需要使用strcpy() 不能通过使用数组名赋值方式完成字符串赋值 结构体数据类型 结构体变量及成员的地址 也可以通过首地址偏移来访问结构体成员 不保险,慎用 结构体数据类型 结构体所占内存的字节数 通常不是各成员所占字节数的总和 结构体数据类型 结构体所占内存的字节数 对于多数计算机系统,存在内存的地址对齐问题,以提高访问效率和运算速度 结构体默认的字节对齐一般满足三个准则: 结构体变量的首地址能够被其最宽基本类型成员的大小所整除; 结构体每个成员相对于结构体首地址的偏移量都是成员自身大小的整数倍,如有需要编译器会在成员之间加上填充字节 结构体的总大小为结构体最宽基本类型成员大小的整数倍,如有需要编译器会在最末一个成员之后加上填充字节。 除了与各成员的数据类型有关外,与具体的计算机系统也有关系 结构体数据类型 结构体所占内存的字节数 实际的内存分配方式 使用sizeof()来获取结构体所占字节数 结构体数据类型 结构体数组 定义 初始化 结构体数据类型 结构体数组 结构体数据类型 结构体指针 定义及初始化 结构体数据类型 指向结构体数组的指针 定义及初始化 结构体数据类型 使用结构体
您可能关注的文档
最近下载
- 2023年06月国家国防科技工业局核技术支持中心社会招考聘用笔试历年难、易错考点试题含答案解析.docx
- 人教版七年级上册英语单词表2115.pdf VIP
- 台达 VFDB4132系列刹车模块说明书.pdf
- 河南省郑州市外国语学校2025-2026学年高三上学期第三次阶段检测语文试题(含答案及解析).docx VIP
- 中国马克思主义与当代知到智慧树期末考试答案题库2024年秋北京工业大学.docx VIP
- 2024最新不予立案通知书.doc VIP
- 工业网络技术教材PPT10 Modbus TCP通信及应用.pptx VIP
- 2025年中国亚克力镜面板市场调查研究报告.docx
- 账号内容打造方案.docx VIP
- 锋芒全系列笔记低吸有道系统课程.pdf VIP
原创力文档


文档评论(0)