- 1、本文档共34页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第05章节复杂构造数据类型
复杂构造数据类型 复杂构造数据类型 结构体 共用体 枚举类型 引入 对于同种类型的数据可以用数组来描述。 在解决实际问题时,有时需要将多个不同数据类型的数据组合在一起表达一个整体的信息。如学生个人信息,包括姓名、学号、年龄等,就包含了字符数组和整型数据。 结构体 学生成绩表 5.1.1 结构体的引出及使用 (1)结构体的定义: 由若干个不同类型的数据项组成的组合类型,在C语言中叫做结构体类型。 例如:职工的基本信息有以下几部分组成:编号、姓名、性别、年龄、班组、基本工资、奖金、保险、实发工资。 分析:可以将每个工人的信息定义为一个结构体类型,设类型名是worker 注意: 结构体类型的定义并没有在内存中为其分配空间,仅仅定义了数据的组织形式,创立了一种数据类型,可以理解为以前学过的int、char等基本数据类型。只有在定义了结构体类型的变量后,才会在内存中为该变量分配空间。 在为结构体变量分配存储空间时,每个结构体变量所占存储空间大小为其成员所占存储空间的总和。 结构体类型在使用之前应先定义其类型结构,然后再定义该类型变量,才能使用。 (2)定义结构体类型变量的方法 前面定义的worker同int、char等一样只是类型的名字,不是结构体变量,不能直接使用,需由此类型继续定义结构体变量才能使用。 步骤:先定义一个结构体类型,再定义变量。 struct 结构体类型名 变量名列表; 注意:关键字struct 与结构体类型标识符一起使用。 例: struct worker w1, w2,w[50]; 也可以在定义类型的同时定义结构体变量。 还可以直接定义结构体变量 定义了结构体变量后,系统为之分配内存单元,结构体的各成员在内存中是按顺序连续存放的,所以结构体变量在内存中占据的字节数是各个成员的长度和。 可用求类型长度运算符求出 sizeof(类型名) 如:sizeof(int)为2 sizeof(struct worker)为61; 定义结构体变量必须指明具体的类型名,不同于定义int等标准数据类型变量,因为不同的结构体类型具有不同的结构组成。 (3)结构体变量的引用 一般来说, 在程序设计中不直接引用结构体变量,而是引用结构体变量的某个成员变量。 成员的引用形式: 结构体变量名.成员名 结构体变量使用说明: 结构体变量通常不能整体使用,不能整体输入、输出,只能对单个成员分别引用。 但当结构体变量作为函数参数或赋初值时,可以整体使用;或者两个相同类型的结构体变量,如果一个已经赋值,可以对另外一个整体赋值。 结构体成员也可以是另一个结构体变量,如前面的birthday成员本身又是birth类型的结构体变量,这个成员也不能整体赋值,要用若干个成员运算符引用。 (4)结构体变量的初始化 可以在定义结构体变量的同时, 对其初始化 例:struct student { long int num; char name[20]; char sex; char addr[20]; }a={9001,曹名,m, 123 北京路 }; 5.1.2结构体数组的引出及使用 结构体数组中每一个数组元素都是一个结构体类型的数据,它们都分别包括各个成员项,例如一个班级的40名同学信息组成的数组,每一个同学的数据都是一个结构体类型。 结构体数组的初始化 5.1.4 结构体与指针 1.指向结构体变量的指针 struct student { long num; char name[20]; char sex; float score; } stu1, *p; 3种引用结构体成员的方法 ⑴ 结构体变量.成员名 ⑵ (*p).成员名 ⑶ p-成员名 分析以下几种运算符: p-n p-n++ ++p-n *p.num(错误!)应改为:(*p).num 2.指向结构体数组的指针 struct student { int num; char name[20]; char sex; float score; }; struct student stu[3], *p; …… for(p=stu;pstu+3;p++) printf(“%d,%s,%c,%f”,p-num, p-name,p-sex,p-score); 3.用结构体变量和其指针作为函数参数 结构体变量也是一种数据类型变量,因此也可以作为函数的参
您可能关注的文档
- 祁门市场调研剖析.ppt
- 离骚导学案解答1.ppt
- 002中医基础–脏象.ppt
- 私营小企业应当依法缴纳内退员工社会保险费.ppt
- 离网风力发电system.ppt
- 私募基金小企业注册要求.pptx
- 离网式智能风光互补发电system.ppt
- 高分子物理第3章高分子溶液.ppt
- 种树郭橐驼传T演示课件.ppt
- 科技写作论文初涉.ppt
- (4篇)XX区抓党建促基层治理培训心得体会汇编12.docx
- 汇编1154期-在培训班上的讲话汇编(3篇).doc
- 汇编1173期-专题党课讲稿汇编(3篇)112.doc
- 汇编1076期-主题党课讲稿汇编(3篇).doc
- 汇编1177期-学习心得体会汇编(3篇)112.doc
- (6篇)党和国家机构改革心得体会汇编.docx
- 汇编1166期-坚定理想信念、全面从严治党、担当作为专题党课讲稿汇编(3篇)112.doc
- 汇编1174期-专题党课讲稿汇编(3篇)112.doc
- 教育13期-主题教育学习心得体会、研讨发言材料参考汇编(3篇).doc
- 汇编1458期-心得体会研讨发言提纲参考汇编(3篇)123.doc
文档评论(0)