




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第8章结构体与共用体 2 本章内容 结构体 共用体类型的定义结构体变量 结构体数组 3 基本数据类型和构造数据类型 基本数据类型在高级语言中引入了基本数据类型 整型 实型 字符型等构造数据类型 由基本数据类型按一定的规则组成 数组 具有一定顺序关系的若干相同类型变量的集合的用户自定义的 构造 数据类型 结构体 是一个或多个相同数据类型或不同数据类型的变量集合在一个名称下的用户自定义的 构造 数据类型 共用体 将不同的数据类型组合在一起 共占同一段内存的用户自定义的 构造 数据类型 4 思考 为什么要使用结构体 在程序里表示一个人 姓名 年龄 性别等 怎么表示 想表示多个人呢 如何用c程序实现下述表格的管理 表8 1某学校学生成绩管理表 5 数组的解决方法 intstudentId 30 最多可以管理30个学生 每个学生的学号用数组的下标表示 charstudentName 30 10 charstudentSex 30 2 inttimeOfEnter 30 入学时间用int表示 intscoreComputer 30 计算机原理课的成绩 intscoreEnglish 30 英语课的成绩 intscoreMath 30 数学课的成绩 intscoreMusic 30 音乐课的成绩 6 数组的解决方法 学生管理数组结构的内存分配图 分配内存不集中 寻址效率不高对数组进行赋初值时 容易发生错位结构显得比较零散 不容易管理 7 希望的内存分配图 8 结构体类型的声明 结构体定义 数据样板 一般形式 struct结构体名 类型关键字成员名1 类型关键字成员名2 类型关键字成员名n 构成结构体的变量称为结构体的成员 结构体的定义只定义了数据的形式 即声明了一种复杂的数据类型 并未生成任何变量 9 结构体类型的声明 结构体定义 structstudent intstudentID charstudentName 10 charstudentSex 4 inttimeOfEnter intscoreComputer intscoreEnglish intscoreMath intscoreMusic 10 结构体变量的定义 方法一 先定义结构体类型再定义变量名 方法二 在定义类型的同时定义变量 structstudentstudent1 student2 structstudent intstudentID charstudentName 10 charstudentSex 4 inttimeOfEnter intscoreComputer intscoreEnglish intscoreMath intscoreMusic student1 student2 11 结构体变量的定义 方法三 直接定义结构体变量 不出现结构体名 struct intstudentID charstudentName 10 charstudentSex 4 inttimeOfEnter intscoreComputer intscoreEnglish intscoreMath intscoreMusic student1 student2 12 结构体变量的引用 有严格的规定不能将一个结构体变量作为一个整体实施输入和输出操作 只能对每个具体的成员进行输入 输出操作 对于结构变量 要通过成员 圆点 运算符 逐个访问其成员 且访问的格式为 结构体变量名 成员名例 st1 studentID 99001 如果某成员本身又是一个结构类型 则只能通过多级的运算 对最低一级的成员进行引用结构体变量名 成员名 子成员名 最低1级子成员名例 st1 timeOfEnter year 2005 13 结构体变量的引用 对最低一级成员 可像同类型的普通变量一样 进行相应的各种运算 例 st2 studentID st1 studentID 1 strcpy st1 studentName 令狐冲 既可引用结构变量成员的地址 也可引用结构变量的地址 例 14 结构体变量的初始化 结构体变量 初值表 如果某成员本身又是结构类型 则该成员的初值为一个初值表注意 初值的数据类型 应与结构变量中相应成员所要求的一致 否则会出错如 st1 1 令狐冲 男 1999 12 20 90 83 72 82 示例 结构体变量的使用 见程序示例 15 结构体数组 结构体数组的每一个元素 都是结构类型数据 均包含结构类型的所有成员 结构体数组定义与结构变量的定义相似 有三种方式 只需说明为数组即可结构体数组的初始化初始化的格式为 结构数组 n 初值表1 初值表2 初值表n 16 结构体数组 structSTUDENT intstudentID charstudentName 10 charstudentSex 4 structdatetimeOfEnter intscoreComputer intscoreEnglish intscoreMath intscoreMusic structSTUDENTstu 30 1 令狐冲 男 1999 12 20 90 83 72 82 2 林平之 男 1999 07 06 78 92 88 78 3 岳灵珊 女 1999 07 06 89 72 98 66 4 任莹莹 女 1999 07 06 78 95 87 90 17 示例 候选人得票的统计程序 设有三个候选人 每次输入一个得票的候选人的名字 要求最后输出得票的的结果 lilizhaozhangzhangli 2zhang 2zhao 1 见程序示例 18 指向结构体变量的指针 结构体变量的指针 结构变量在内存中的起始地址指向结构体变量的指针structpoint intx inty structpointpt 1 2 structpoint ppt ppt 19 指向结构体变量的指针 怎样通过ppt访问pt的成员 对结构体成员的引用 结构体变量 成员名例 pt x 0 指针变量 成员名例 ppt x 0 指针变量 成员名例 ppt x 0 以上三种方法等价 20 结构体数组和指针 structSTUDENT pt pt stu 例 计算学生各科成绩的平均分教材328页 见程序示例 21 关键字typedef的用法 typedef为一种已存在的类型定义一个新名字即为已经定义的数据类型定义一个 别名 也可以说是用户可以定义自己的类型名 而不用系统给定的类型名 例 typedefunsignedfloatufl uflx y 同样 typedefstructstudentStud Studstudent1 student2 Stud与structstudent类型是同义词 22 共用体 联合 概念将不同的数据类型组合在一起 共占同一段内存的用户自定义的构造数据类型共用体类型的定义union共用体名 成员列表 共用变量的定义与结构体变量的定义类似 有三种方式共用体的作用 节省内存空间 避免逻辑上的冲突 23 共用体 联合 unionnumber intx floaty 基本上和struct一样x和y处于同
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 肌腱损伤基因治疗-洞察及研究
- 山东省日照市东港区2024-2025年八年级下学期期末考试物理试题(含答案)
- 江苏省南通市2025-2026学年七年级语文上学期第一次月考复习试卷(含答案)
- 福建省莆田市第九中学2024-2025学年七年级上学期期中考试数学试卷(含答案)
- 13.1热量 比热容 同步练习(含解析)2025-2026学年人教版(2024)九年级全册
- 部门员工安全培训制度课件
- 避孕药具管理培训课件
- 边沟施工安全培训内容课件
- 触觉反馈人机工效-洞察及研究
- 基于微米级精度的制造工艺如何重构农业机械管路系统的标准化流程
- 勘察设计工作大纲
- GB/T 17188-1997农业灌溉设备滴灌管技术规范和试验方法
- 2022年资阳市雁江区社区工作者招聘考试笔试试题及答案解析
- 帮助卧床老年人使用便器排便课件
- 【高考英语精品专题】必修1 Unit 1 Life Choices-高考英语-一轮总复习备考方略课件PPT(新教材北师大版)
- 质量管理学课件第1章
- 中国传媒大学-新媒体概论(刘行芳)-课件
- SLZ 549-2012 用水审计技术导则(试行)
- 颈内动脉动脉瘤临床路径(2010年版)
- 水泵房设备的保养与维护方案
- Symantec-Ghost-Solution-Suite安装
评论
0/150
提交评论