- 1、本文档共89页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第九章结构体、共用体和枚举类型
第9章 结构体、共用体和枚举类型 ; 9.1 结 构 体 在实际应用中,一组数据往往具有不同的数据类型。例如在学生登记表中,学号、姓名、性别、年龄、电话号码和家庭地址的数据类型不完全相同。显然不能用数组来存放这一组数据,因为数组中各元素的类型和长度都必须一致。为了解决这个问题,C语言中给出了另一种构造数据类型——结构体。结构体是一种构造类型,它是由若干“成员”组成的。每一个成员可以是一个基本数据类型,或者是另一个构造类型。结构体既然是一种“构造”而成的数据类型,那么在说明和使用之前必须先定义结构体类型。;; 定义结构体类型的一般形式如下: struct 结构体名 { 数据类型1 成员1; 数据类型2 成员2; … 数据类型n 成员n; };; 说明: (1) ?struct是定义结构体类型的关键字,不能省略。 (2) 结构体名遵循标识符的命名规则。 (3) 结构体有若干数据成员,用{}括起来,分别属于各自的数据类型。结构体成员名同样遵循标识符的命名规则。 ; (4) 定义结构体类型,就是定义一种数据类型,与基本数据类型是一样的,只不过结构体类型是一种复杂的数据类型,是基本数据类型的组合。应注意,使用结构体类型时,“struct 结构体名”是作为一个类型名来对待的,它与标准类型(如int、char等)具有相同的地位和作用。 (5) 定义结构体类型后,C系统并不分配存储空间,只有定义了该结构体类型的变量后,系统才为此变量分配存储空间。 例9-1 定义一个学生信息的结构体类型。;struct student{ int num; char name[19]; char sex; int age; char tel[20]; char addr[40];};; 说明: (1) “struct student”是结构体类型名。struct是关键字,在定义和使用时均不能省略。 (2) 该结构体类型由6个成员组成。这6个成员分别属于不同的数据类型,各个成员之后的分号“;”不能省略。应特别注意的是,最后的分号是必不可少的。;9.1.2 结构体数据的定义和引用 1.先声明结构体类型再定义变量名 如上面已经定义了一个结构体类型struct student,可以用它来定义变量。如: struct student stu1,stu2; 定义了两个变量stu1和stu2,为struct student类型的变量。在定义了结构体变量之后,系统会为之分配内存单元。例如stu1和stu2在内存中所占的字节是struct student类型中各个成员所占字节数之和,即4+19+1+4+20+40=88字节。;2.在声明结构体类型的同时定义变量例如:struct student{ int num; char name[19]; char sex; int age; char tel[20]; char addr[40];}stu1,stu2;; 它的作用与第一种方法相同,即定义了两个struct student类型的变量stu1和stu2。这种在声明结构体类型的同时定义结构体变量一般形式为: struct 结构名 { 成员表列; }变量名表列;;3.直接定义结构类型变量例如:struct{ int num; char name[19]; char sex; int age; char tel[20]; char addr[40];}stu1,stu2;;其一般形式为: struct { 成员表列; }变量名表列;; 说明: (1) 结构体类型和结构体变量是不同的概念,不要混淆。在定义时一般先定义一个结构体类型,然后再定义该结构体类型的变量。注意:只能对结构体变量赋值、运算、输出,而不能对结构体类型赋值、运算、输出。 (2) 在编译时,对结构体类型不分配空间,只对变量分配空间。 (3) 一个结构体变量所占存储空间是各个成员所占存储空间之和。例如,上面定义的stu1, stu2所占存储空间的大小为4+19+1+4+20+40,共计88个字节。 ; (4) 结构体中的成员也可以是另一个结构体类型的变量,例如: struct date { int year; int month; int day; }; struct student {; in
您可能关注的文档
- 第三章继电器接触器控制系统.ppt
- 第三章继电器_接触器控制系统设计2011.ppt
- 第三章自定义数据结构.ppt
- 第三章节一元一次方程复习演示课件.ppt
- 第三章节人类社会-其进展规律.ppt
- 第三章节节消费者行为理论.ppt
- 第三章节联系数据库基准语言SQL 8.ppt
- 第三章血液生理学.ppt
- 第三章节向量线联系秩.ppt
- 第三章节区间估量-假设检验.ppt
- 2024年江西省高考政治试卷真题(含答案逐题解析).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)物理试卷(含答案详解).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)地理试卷(含答案详解).pdf
- 2024年内蒙通辽市中考化学试卷(含答案逐题解析).docx
- 2024年四川省攀枝花市中考化学试卷真题(含答案详解).docx
- (一模)长春市2025届高三质量监测(一)化学试卷(含答案).pdf
- 2024年安徽省高考政治试卷(含答案逐题解析).pdf
- (一模)长春市2025届高三质量监测(一)生物试卷(含答案).pdf
- 2024年湖南省高考政治试卷真题(含答案逐题解析).docx
- 2024年安徽省高考政治试卷(含答案逐题解析).docx
最近下载
- 2024年河北省高考英语试卷(含答案解析).docx
- 特色办学建设规划及实施方案.doc VIP
- 惠州市2024届高三第三次调研考试(三调)语文试卷(含答案).pdf
- 2021年农产品商贸流通专业群人才培养方案(高职).pdf
- 热血三国秒墙计算器.pdf VIP
- 教育调查与研究报告大学.docx VIP
- 《急诊与灾难医学》第十章 急性中毒.pptx
- 2024年高考真题和模拟题英语分类汇编:专题10 完形埴空(新高考15空) (原卷版) (全国通用).docx VIP
- 大唐国际胜利东二号露天煤矿采场边坡稳定性分析-采矿工程专业论文.docx
- 2024年新入职护士培训考试题库资料800题(含答案).pdf
文档评论(0)