- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第九章结构体联合体
§9.2 结构体类型变量的引用和初始化 §9.3 结构体数组 §9.4 结构体指针 §9.5 结构体在函数间的传送 §9.8 联合体 * * 第九章 结构体与联合体 §9.1 结构体与结构体变量的定义 结构体是一种构造数据类型。 数组也是构造数据类型,但数组要求其数组元素的数据类型必须是一致的,而在实际编程中要处理的大量复杂数据对象,其组成成员(元素)的数据类型往往是不一致的,这时我们就可以使用结构体类型来描述。 一个学生的5门课程的成绩:float score[5] 一个学生的基本信息:学号、姓名、性别、成绩和生日。 (5个数据是一个整体,但类型不一致) 结构体:将不同类型的数据组织在一起,形成新的一种数据类型 (9) §9.1.1 结构体的定义 定义形式: struct 结构体名 { 结构体成员类型说明; }; 下面是定义了一个学生结构体数据类型: struct student { unsigned int number; char *name; char sex; float score; }; 一个结构体的结构体成员类型是没有限制的,可以是C语言中任何类型的变量,可以是基本数据类型,也可以是构造类型,还可以是指针类型。当结构体成员也是结构体类型时,称之为结构体的嵌套,即一个结构体中可以包含另一个结构体的结构体变量。 将上例中定义的学生结构体数据类型再加上一个出生日期结构体成员,可描述如下: struct date /*date是结构体名,是一种类型而不是一个变量*/ { /*day,month,year是结构体成员*/ int day; int month; int year; }; struct student { unsigned int number; char *name; char sex; float score; struct date birthday; /*结构体嵌套*/ }; 注意: (1)结构体是一种构造出来的数据类型。 (2)结构体成员可以是任何数据类型。 (3)使用结构体类型(结构体名)定义变量时应在结构体名前加struct关键字。 §9.1.2 结构体变量的定义 结构体变量定义形式: struct 结构体名 结构体变量名表; 例如: struct student d1,d2,*ps,d[10]; /*先定义一个结构体类型,再使用结构体定义结构体变量*/ 或struct student { unsigned int number; char *name; char sex; float score; struct date birthday; }d1,d2,*ps,d[10]; /*该定义把结构体的定义和结构体变量的定义合在一起,定义了两个结构体变量d1和d2,一个指向结构体变量的指针pd和一个一维结构体数组d。*/ 用来指定该结构体变量所属的结构体模式 用来给出一个或多个结构体变量名,多个结构体变量名之间用逗号隔开 如果将结构体模式和结构体变量的定义合在一起,并且只进行一次结构体变量的定义,则可以省略结构体名,这样的结构体称为无名结构体。 struct { 结构体成员的类型说明 }结构体变量名表; 例如: struct {unsigned int number; char *name; float score; }s1,*ps,ss[50]; struct addr {char *addr; … }addr; 注意: (1)区别结构体名、结构体成员名和结构体变量名 (2)三个名字可以相同(在三个不同的位置) (3)结构体变量占用的内存空间是各成员变量所占内存空间大小之和。 §9.2.1 结构体类型变量的引用 在对结构体变量引用时,一般只能对其成员进行直接操作,而不准许对结构体变量整体直接进行操作。也就是说,通过对结构体变量成员的访问操作达到对结构体变量整体的访问操作。 结构体变量成员的两种引用形式: 第一种形式:使用结构体成员运算符方式 结构体变量名.结构体成员名 d1.number d1.name d1.birthday.day(嵌套) “.”表示结构体成员变量的运算符,其结合性为从左至右。 第二种形式:通过指向结构体变量的指针表示结构体的成员(成员指针) 指向结构体变量指针名-结构体成员名
您可能关注的文档
最近下载
- 房产税城镇土地使用税政策讲解.pdf VIP
- 《弟子规正版全文-带拼音-完善打印版》.docx VIP
- 新大学日语阅读与写作1东娜练习答案及译文.pptx
- 第19课 法国大革命和拿破仑帝国 课件(共33张PPT).pptx VIP
- 施工现场节假日前安全检查表.doc VIP
- 500kV龙昌Ⅰ、Ⅱ号线直线塔绝缘子单串改双串施工方案.pdf VIP
- 结构优化的群体智能优化算法研究.pdf VIP
- 新视野大学英语(第四版)读写教程1(思政智慧版)课件 B1U1 Section A Fresh start.pptx VIP
- 北京-407EV-标准版-BJ5030XXYVRRC-BEV-407EV纯电动汽车产品使用说明书.pdf VIP
- GB50666混凝土结构工程施工规范.pdf VIP
文档评论(0)