- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 构造数据类型 8.1 结构体 同数组类似,一个结构体也是若干数据项的集合,但与数组不同,数组中的所有元素都只能是同一类型的,而结构体中的数据项可以是不同类型,我们可以称这些数据项为“成员”,结构体是由若干“成员”组成的。每一个成员可以是一个基本数据类型或者又是一个构造类型。结构体既是一种“构造”而成的数据类型,那么在说明和使用之前必须先定义它,也就是构造它。如同在说明和调用函数之前要先定义函数一样。 定义一个结构的一般形式如下: struct 结构体名 { 类型 成员变量名1; 类型 成员变量名2; 类型 成员变量名3; … }; 其中struct是定义结构体的关键字;结构体名是此结构体的名字,此后可利用此结构体类型来定义相应的结构体变量;成员(也称为域或分量)表部分是由一系列的变量定义组成的。 例如,有关学生的结构体类型可定义如下: struct student { int num; char name[20]; char sex; float score; }; 在这个结构定义中,结构名为student,该结构由4个成员组成。第一个成员为num,整型变量;第二个成员为name,字符数组;第三个成员为sex,字符变量;第四个成员为score,实型变量。应注意在括号后的分号是不可少的。结构定义之后,即可进行变量说明。凡说明为结构student的变量都由上述4个成员组成。由此可见, 结构是一种复杂的数据类型,是数目固定,类型不同的若干有序变量的集合。 8.1 结构体 8.1.1 前导实例 8.1.2 使用结构体存储复杂数据形式 8.1.3 结构体数组 8.1.4 结构体指针 8.1.5 用typedef进行类型定义 8.1.1 前导实例 1.先定义结构体类型,然后在定义结构体变量 结构体类型定义的形式如下: struct 结构体名 { 成员表; }; struct 结构体名 变量名1,变量名2,……; 例如,有关日期的结构体类型可以定义如下: struct data { int year; int month; int day; }; struct data birthday; struct data型结构体中包含3个成员,他们分别是year、month和day,都是整型变量。定义的birthday是struct data型结构体变量。同其他类型的变量定义一样,在同一个结构体说明符下,可以同时定义多个同类型的结构体变量,变量之间用逗号隔开。 8.1.1 前导实例 2.在定义结构体类型的同时定义结构体变量 这种形式的结构体定义方式如下: struct 结构体名 { 成员表; }变量名表列; 例如: struct data { int year; int month; int day; } birthday, workday; 这里birthday和workday的长度就是各个成员长度的和,都为12字节。 8.1.1 前导实例 3.直接定义结构体变量 这种形式的结构体定义方式如下: struct { 成员表; }变量名表列; 例如,有关日期的结构体类型可以定义如下: struct { int year; int month; int day; }birthday; 第三种方法与第二种方法的区别在于第三种方法中省去了结构名,而直接给出结构体变量。 8.1.1 前导实例 成员也可以又是一个结构体,即构成了嵌套的结构体。例如,下面给出了另一个数据结构。 struct date { int month; int day; int year; }; struct { int num; char name[20]; char sex; struct date birthday; float score; }student1,student2; 8.1.2 使用结构体存储复杂数据形式 1.结构体变量的引用 对结构体变量的使用是通过对其每个成员的引用来实现的。 表示结构变量成员的一般形式是: 结构变量名.成员名 其中“.”是结构体成员运算符,它在所有运算符中优先级最高,因此上述引用结构体成员的写法可以看作为一个整体来看待。 例如: student1.num 即第一个人的学号 student2.sex 即第二个人的性别 如果成员本身又是一个结构则必须逐级找到最低级的成员才能使用。 例如: student11.birthday.month 即第一个人出生的月份成员可以在程序中单独使用,与普通变量完全相同。 8.1.2 使用结构体存储复杂数据形式 2.结构体变量的赋值 例8.1 结构体变量的赋值 程序清单如下:(文件名8_1.c) #include stdio.h int main() { struct
您可能关注的文档
- java虚拟机分析与优化.ppt
- JPEG图像编码标准.ppt
- JSTOR新界面使用指引.ppt
- Juniper模拟器使用入门.pptx
- KantarHealth–全球领先的市场调研和咨询机构.pptx
- kintone日报·商谈报告安装包介绍资料.pptx
- KIS移动产品大全.pptx
- KT宽带网管系统介绍.ppt
- LASG全球海洋模式.ppt
- LED产业化项目计划书.ppt
- 2026-2030中国触觉成像行业市场发展趋势与前景展望战略分析研究报告.docx
- 2026-2030中国糊精市场投资建议及未来前景趋势研究报告.docx
- 2026-2030中国电子元器件行业深度发展研究与“十四五”企业投资战略规划报告.docx
- 2026-2030中国人工智能网络安全行业发展态势与投资前景展望报告.docx
- 2025至2030中国辐照加速器市场供需状况及发展痛点分析报告.docx
- 2025至2030中国AI安全行业市场深度调研及竞争格局及有效策略与实施路径评估报告.docx
- 2026-2030中国吡蚜酮行业经营效益及未来需求预测研究报告.docx
- 2026-2030中国汽车座椅行业供需趋势及投资风险研究报告.docx
- 2026-2030全球与中国多动力体内碎石机市场决策建议及未来供需格局分析报告 、.docx
- 2026-2030中国车载电源市场深度调查研究报告.docx
原创力文档


文档评论(0)