- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第13章 结构体的应用 13.1 了解由用户构造的数据类型 13.2 结构体类型说明及结构体变量 13.3 结构体数组 13.4 函数之间结构体类型的数据传递 13.5 利用结构体变量构成静态链表 13.6 利用指针处理动态链表 13.1 了解由用户构造的数据类型 13.1.1 可以由用户构造的数据类型 13.1.2 用typedef定义类型名 13.2 结构体类型说明及结构体变量 13.2.1 结构体类型的说明 13.2.2 结构体变量的定义 13.2.3 结构体变量的初始化 13.2.4 结构体变量中成员的访问 13.3 结构体数组 从例13.1中可以看出,利用结构体变量只能存放一名学生的信息。若要保存多名学生的信息就要使用结构体类型的数组。 13.3.1 结构体数组的定义 定义结构体数组的方法和定义结构体变量的方法一样:可以先说明结构体类型,再用类型名定义数组;也可以在说明类型的同时定义数组。例如: struct student { int num; char name[9]; char sex; struct date birthday; float score[3]; }; struct student pers[3]; 也可以采用以下形式: typedef struct { int num; char name[9]; char sex; struct { int year, month, day ;} birthday; float score[3]; }STU; STU pers[3]; 以上两种形式都是先说明了类型名(struct student或STU),再用类型名定义了具有3个元素的结构体数组pers。 若要直接定义结构体数组,可以采用以下两种形式: 结构体数组pers中的每个元素都是一个结构体类型,如图13-3所示。它们在内存中也占据着连续的存储单元。 13.3.2 结构体数组的初始化 和其他类型的数组一样,结构体数组也可以在定义的同时进行初始化。例如: struct student pers[3]={ {1,Zhanghua,M,1961,10,8,76.5,78.0,82.0}, {2,Wangwei,F,1960,12,20,70.0,85.5,76.0}, {3,Liming, M,1961,3,16,80.0,84.5,91.0} }; 可以看出:所赋初值是放在一对花括号中的。为了清晰,每个元素的值又分别用一对花括号括起,中间以逗号分隔。数组pers赋初值后的情况如图13-4所示。 在定义结构体数组时,也可以不指定元素的个数,而通过初值的个数决定数组的大小。形式如下: struct student test[ ]={ {…},{…},{…},{…} }; 这时编译系统会根据初值的个数,判定出数组test有4个元素。 13.3.3 结构体数组的应用 结构体数组中有若干个元素,每个元素中都包含有各自的成员,应该采用什么样的形式去引用它们呢?事实上,只要把数组元素看作是带有下标的变量,就可以沿用13.2.4中介绍的成员引用方法: 结构体变量名.成员名 此处可理解为: 结构体数组元素.成员名 结合图13.4可以看出: pers[0].num 表示的是数组第1个元素中值为1的num成员 pers[1].sex 表示的是数组第2个元素中值为F的sex成员 pers[2].birthday.year 表示的是数组第3个元素中的结构体birthday中的year成员 13.4 函数之间结构体类型的数据传递 13.4.1 结构体变量的成员作实参 结构体变量的成员作实参时,参数的传递情况取决于该成员本身的数据类型。如果作为实参传送的这一成员是简单变量,相应的形参应该是同类型的简单变量;如果作为实参传送的成员是数组名,对应的形参就必须是基类型相同的指针变量。 例13.4 结构体变量的成员作实参。 #include stdio.h typedef struct { int num; char name[9]; char sex; struct { int year,month,day ;} birthday; float score[3]; }STU; void fun1(char *name) /* 形参为字符型指针 */ { printf(%9s,name); } void fun2(int y) /* 形
您可能关注的文档
- C语言程序设计教程 第2版 普通高等教育“十一五”国家级规划教材 作者 李丽娟 C第2版(第2章_基本语句).ppt
- C语言程序设计教程 第2版 普通高等教育“十一五”国家级规划教材 作者 李丽娟 C第2版(第4章_分支结构).ppt
- C语言程序设计教程 第2版 普通高等教育“十一五”国家级规划教材 作者 李丽娟 C第2版(第5章_循环结构).ppt
- C语言程序设计教程 第2版 普通高等教育“十一五”国家级规划教材 作者 李丽娟 C第2版(第7章_数组).ppt
- C语言程序设计教程 第2版 普通高等教育“十一五”国家级规划教材 作者 李丽娟 C第2版(第8章_指针).ppt
- C语言程序设计教程 第2版 普通高等教育“十一五”国家级规划教材 作者 李丽娟 C第2版(第9章_结构).ppt
- C语言程序设计教程 第2版 普通高等教育“十一五”国家级规划教材 作者 李丽娟 C第2版(第10章_文件).ppt
- C语言程序设计教程 第2版 普通高等教育“十一五”国家级规划教材 作者 李丽娟 C第2版(第11章_位运算).ppt
- C语言程序设计教程 第2版 宗大华 陈吉人 C语言 课件-1.ppt
- C语言程序设计教程 第2版 宗大华 陈吉人 C语言 课件-4.ppt
- C语言程序设计教程 作者 周海燕 李智 第14章.ppt
- C语言程序设计教程 作者 周海燕 李智 第15章.ppt
- C语言程序设计教程 作者 宗大华 陈吉人 第1章.ppt
- C语言程序设计教程 作者 宗大华 陈吉人 第2章.ppt
- C语言程序设计教程 作者 宗大华 陈吉人 第4章.ppt
- C语言程序设计教程 作者 宗大华 陈吉人 第5章.ppt
- C语言程序设计教程 作者 宗大华 陈吉人 第6章.ppt
- C语言程序设计教程 作者 宗大华 陈吉人 第8章.ppt
- C语言程序设计实例教程 作者 管银枝 胡颖辉 第八章 结构体 共用体.ppt
- C语言程序设计实例教程 作者 管银枝 胡颖辉 第七章 函数.ppt
最近下载
- 液体伤口敷料产品技术要求标准2023版.docx VIP
- 《水利工程外观质量评定规程DB34∕T 4010-2021》知识培训.pptx VIP
- DLT741-2023年架空送电线路运行规程.docx
- 并网光伏电站项目工程现场电气二次施工方案.doc
- 英语新课标背景下:非纸笔测试在小学英语期末评价中的实践研究.pdf VIP
- 股市实战绝技汇总篇(精华).doc VIP
- 历年行情的十大牛股.doc VIP
- 安徽省六校联考暨安徽六校教育研究会2026届高三入学素质检测-物理试卷答案.docx VIP
- 基于Ansys CFX的风扇叶片双向流固耦合分析.docx VIP
- (高清版)DB1307∕T 334-2020 蛋鸡无抗养殖技术规范.pdf VIP
文档评论(0)