- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十章 结构体、共用体和枚举 信息工程学院 结构体、共用体和枚举 结构体定义、引用和初始化 结构体数组 结构体指针和链表 共用体定义和引用 10.1 概述 基本类型的变量(如整型,实型、字符型变量等)和数组难以处理一些较复杂的数据结构。例如在日常事务处理中,常常要求把一些属于不同类型的数据作为一个整体来处理,但又不属于同一类型。对于这类问题不能用一个数组来描述它们。为此,C语言提供了这样一种数据类型称为结构体类型,它是由一些属于不同类型的数据组合而成的。由于它是由一些基本数据类型组成的,所以它属于构造类型。 1. 结构体类型的定义 例如: struct person { char name[20]; int age; char sex; char addr[30]; long number; }; 上面定义了一个结构体类型,struct person(struct是关键字,不能省略)。person为结构体名,它由5个成员组成。第一个成员是字符数组name,用于保存姓名;第二个成员age是整型数据,用于保存年龄;第三个成员sex是字符型数据,用于保存性别数据;第四个成员是字符数组addr,用于保存地址数据;最后一个成员是长整型数据,用于保存电话号码。 说明: (1) 定义一个结构体类型,并不意味着系统将分配一段内存单元来存放各数据项成员。这是定义类型而不是定义变量,定义一个类型只是表示这个类型的结构,即告诉系统它由哪些类型的成员构成,各占多少个字节,各按什么形式存储,并把它们当作一个整体来处理。应当明确,只定义类型是不分配内存单元的,例如系统定义了int,float等类型,但并不具体分配内存单元,它只反映一种数据属性,是对具体数据的抽象。如果以后定义变量为该类型,该变量应当具备这种特征,只有在定义变量以后,才占据存储单元。 (2)允许嵌套定义 在结构体中利用已经定义过的结构体类型来定义成员 如:struct date { int month; int day; int year; }; struct person { char name[10]; struct date birthday; char sex; int age; }; 结构体类型的内存分配: (1)先定义结构体类型再定义变量名,其定义的一般形式如下: [存储类型] struct 结构体名 结构体变量表; 例如: struct employee { char *name; int age; double salary; char *address; }; 利用结构体类型struct employee来定义结构体变量 GongTao、ChengZhe、LiuChao和WangZhe的形式为: struct employee GongTao, ChengZhe, LiuChao, WangZhe; 如上面已定义了一个结构体类型struct person,可以用它来定义变量,如 struct person person1,person2;定义person1和person2为struct person类型变量,即它们具有struct person类型的结构。定义了一个结构体类型后,可以多次用它来定义变量。如:struct person student,worker;这种定义方式的特点是:可把其结构体说明部分作为文件存放起来,这样就可借助于#include语句把它复制到任何源文件中,用以定义同类型的其他结构体变量。 (2)在定义一个结构体类型的同时定义一个或若干个结构体变量,一般形式为: [存储类型] struct 结构体名 { 结构体成员表; }结构体变量名表; 其中,存储类型表示结构体变量的存储类型(下同)。 例如: struct person { char name[20]; int age; char sex; char addr[30]; long number; }person1,person2; 它的作用与前面定义的相同。即定义了两个struct person类型的变量person1,person2。 (3)直接定义结构体类型的变量 例如: struct { char name[20]; int age; char sex; char addr[30]; long number; } person1,person2; 直接定义了person1和person2两个结构体变量。
您可能关注的文档
- C语言程序设计 作者 978-7-302-31359-5 第9章 用户自定义数据类型.ppt
- C语言程序设计 作者 978-7-302-31359-5 第10章 指针.ppt
- C语言程序设计 作者 978-7-302-31359-5 第12章 位运算.ppt
- C语言程序设计 作者 柴世红_ 第1章.ppt
- C语言程序设计 作者 柴世红_ 第2章.ppt
- C语言程序设计 作者 柴世红_ 第3章.ppt
- C语言程序设计 作者 柴世红_ 第5章.ppt
- C语言程序设计 作者 柴世红_ 第9章.ppt
- C语言程序设计 作者 柴世红_ 第10章.ppt
- C语言程序设计 作者 柴世红_ 第11章.ppt
- 新解读《GB_T 28923.5-2012自然灾害遥感专题图产品制作要求 第5部分:救助与恢复重建评估专题图产品》.pptx
- 新解读《GB_T 28926-2012信息技术 射频识别 2.45GHz空中接口符合性测试方法》.pptx
- 新解读《GB_T 29332-2012半导体器件 分立器件 第9部分:绝缘栅双极晶体管(IGBT)》.pptx
- 新解读《GB_T 29459.1-2012在役承压设备金属材料小冲杆试验方法 第1部分:总则》.pptx
- 新解读《GB_T 28878.1-2012空间科学实验转动部件规范 第1部分:设计总则》.pptx
- 新解读《GB_T 3883.20-2012手持式电动工具的安全 第2部分:捆扎机的专用要求》.pptx
- 新解读《GB_T 28768-2012车用汽油烃类组成和含氧化合物的测定 多维气相色谱法》.pptx
- 新解读《GB_T 4324.7-2012钨化学分析方法 第7部分:钴量的测定 电感耦合等离子体原子发射光谱法》.pptx
- 新解读《FZ_T 10013.2-2011温度与回潮率对棉及化纤纯纺、混纺制品断裂强力的修正方法 本色布断裂强力的修正方法》最新解读.pptx
- 新解读《FZ_T 50010.13-2011粘胶纤维用浆粕 反应性能的测定》最新解读.pptx
文档评论(0)