




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计 第7章自定义数据类型 本章主要内容 1 自定义数据类型概念 2 结构体类型 3 共用体类型 4 枚举类型 自定义数据类型 自定义数据类型是指用户根据需要自己定义的 由多种基本数据类型所构成的复合数据类型 共用体类型与结构体类似 不同之处在于共用体中的不同数据类型共享同一存储空间 枚举类型可以把变量的取值逐一列出且可以用整数或者名字来代替 结构体类型把关系密切但数据类型不同的数据组合在一起 C语言提供了三种用户可以自定义的数据类型 结构体类型 表中数据是一个有机的整体 组合在一起才能表示一个完整而有意义的信息 这样的数据用基本数据类型无法表示 只有把几种不同的基本数据类型组合在一起才行 用结构体可以解决此类完整信息表示的问题 结构体类型的定义 结构体类型的定义形式为 struct结构体名称 数据类型成员名1 数据类型成员名2 上表会员结构体定义为 structMember charID 7 charname 10 charsex intage intpoints 结构体中的每一个数据称为一个成员 Member结构体中有5个成员 结构体类型的定义 说明 1 struct是定义结构体的关键字 不能省略 由它和后面的结构体名称一起构成了一个用户自己定义的新的数据类型 2 大括号 中的每一项称为结构体的一个成员 可以是已有的任意数据类型 包括基本数据类型 数组和用户自定义类型 3 结构体定义完要加分号 结构体变量的定义 定义好结构体后 就可以用该结构体来定义新的变量 称为结构体变量 结构体变量的定义方式有三种 第一种 struct结构体类型名结构体变量名 例如 structMembermem1 第三种 struct 数据类型成员1 数据类型成员2 结构体变量表列 一般不推荐使用这种定义方式 结构体变量的使用 成员的访问变量名 成员名 称为成员运算符对成员的赋值与普通变量的赋值是一样的 如 mem1 ID 12500113 结构体变量的初始化structMembermem1 12500113 John M 26 30 结构体变量的整体赋值结构体变量1 结构体变量2mem2 mem1 typedef的使用 typedef声明 简称typedef 它的作用是为数据类型定义一个新的名字 typedef的用法是 typedef数据类型名用户自定义名称例 typedefintinteger 这个声明为int取了一个新的名字叫integer 在进行了这个声明后可以用integer来定义变量 如 integera 这个定义与inta 是等价的 结构的嵌套 当结构体成员由更小的数据项构成时 就形成了结构体的嵌套 例如 日期结构体为 structDate intyear intmonth intday 在会员结构体中增加了出生日期后 结构就变为 structMember charID 7 charname 10 charsex structDatebirthday intage intpoints 结构体数组 同种结构数据的集合即结构体数组structMember intID charname 10 charsex intage intpoints mem 10 对数组元素的访问方式为 mem i IDmem i name 结构体数据作为函数参数 结构变量可以作为函数的参数来传递 函数的返回值也可以是结构变量 用结构体变量成员作为函数的参数用结构体变量作为函数的参数用结构体数组作为函数的参数 共用体类型 在一些情况下 结构体中的成员不需要同时出现 使用结构体会造成空间的浪费 共用体可以解决此问题 共用体类型的定义与结构体类型的定义很相似 只不过修饰符不是struct 而是union 例如 unionGrade charvip intgen mem grade 共用体变量的引用方式与结构体变量一样 都是通过成员运算符来引用的 共用体的存储空间 共用体Grade占用空间示意 所有成员共用同一段存储空间 该空间按占用存储区最大的成员来分配 结构体与共用体所占空间比较 有如下定义的结构体 structNumber shorta floatb charc num 占用空间为 结构体占用空间是所有成员占用空间之和 枚举类型 在实际中 有的变量取值情况可能只有几种 把这些可能的取值情况列举出来 就构成了一种新的数据类型 枚举 枚举类型的定义形式为 enum类型名 枚举常量1 枚举常量2 每个枚举常量都有一个值 若不特别说明 则第一个枚举常量的值为0 也可以在定义的时候指定 其他枚举常量的值从第一个枚举常量开始逐个增1 枚举类型的使用 如定义一个颜色的枚举类型 enumcolor red 1 yellow blue white black green orange enumcoloryanse 说明 1 enum是定义的关键字2 给变量yanse赋值时 赋值形式为 yanse yellow 3 枚举常量的值分别为1 2 3 4 5 6 7 若要改变可自己定义如enumcolor red 1 yellow blue white 6 black green orange 经过这样定义后 枚举常量的值就变成了1 2 3 6 7 8 9 语法练习 以下结构体的定义语句中 正确的是 A structstudent intnum charname 10 intage stu B struct intnum charname 10 intage student structstudentstu C structstudent intnum charname 10 intage stu D structstudent intnum charname 10 intage studentstu 有如下定义的枚举类型 enumweek day Wed 3 Thu Fri Sat Sun Mon Tue everyday 则 Mon的值为 A 1B 2C 8D 5 共用体变量在程序运行过程中 A 只有一个成员占用内存空间B 所有成员都占用内存空间C 没有成员占用内存空间 语法练习 有如下程序段 执行后的输出结果是 includemain structa intx inty num 2 20 5 6 7 printf d n num 0 x num 0 y num 1 y A 0B 28C 20D 5 typedef的作用是 A 用来定义一个新的数据类型B 可以为已有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年防震减灾暨消防演练活动方案
- 18项医疗核心制度题库(含答案)
- 毕业论文侧面装订
- 2024年院感考试题及答案
- 菊花毕业论文
- 2024年房地产经纪协理考试题库含答案(巩固)
- 2024年医院耳鼻喉科工作总结及2025年工作计划
- 危急值报告培训试题(全文)
- 2025年卒中中心院前急救规范及流程
- 施工单位开工仪式精彩致辞
- 统编版(2024新版)七年级上册《道德与法治》教材探究参考答案
- 风电场投资财务模型构建
- 3.15 秦汉时期的科技与文化 课件 2024-2025学年七年级历史上学期
- 10J113-1内隔墙-轻质条板(一)
- 高层建筑火灾扑救
- 香港中文大学博士英文复试模板
- 南京大学介绍
- 新项目方法能力验证报告(固定污染源废气氯化氢的测定硝酸银容量法)
- DL-T+2081-2020电力储能用超级电容器试验规程
- DL-T-255-2012燃煤电厂能耗状况评价技术规范
- 【视频号运营】视频号运营108招
评论
0/150
提交评论