- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 结构体等构造数据类型 6.1 结构体 6.2 结构体与数组 6.3 结构体与指针 6.4 结构体与函数 6.5 联合体与枚举 6.6 类型定义 6.7 程序举例 6.1 结构体 结构体类型的数据由若干称为“成员”的数据组成,每一个成员既可以是一个基本数据类型的数据,也可以是另一个构造类型的数据。 结构体实际上是C编译没有提供的数据类型,可以由程序员根据实际情况来自己构造的一种新的数据类型。 6.1.2 结构体的说明 为了描述起来简单,我们要先定义一 个结构体类型:date 。date是日期,2004年 3月5日是一个日期数据,当然我们可 以用三个整型变量来表示一个日期, int year,month,day; 但是,不能表示三个变量之间的逻辑关 系。 我们把时间说明为DATE ,而DATE 含有小时、分、秒三个成分,则DATE的结 构体说明是: struct DATE { int year; int month; int day; }; 其中struct 是关键字, DATE是结构体 的类型名,它实际上规定了一种新的复杂数 据类型。 于是在随后的程序中就可以使用DATE 定义结构体变量了。 struct DATE start_day ; 结构体的说明方式: struct 结构体名 { 成员表; }; 其中成员表可以由一个或几个成员组 成,要说明每个成员的类型和名称,注意 最后用分号结束。 结构体变量的定义方式: struct 结构体名 结构体变量表; 结构体说明要注意下面几点: (1)结构体说明并不引起存储分配,结构体 变量的定义才引起存储分配。存储分配时, 通常按照各成员在结构体说明中出现的先 后顺序依次排列。结构体成员的数据类型 可以是C语言的基本数据类型,也可以 是数组和指针类型。 (2) 结构体成员还可以是另一个结构体类型,结构体说明可以嵌套。 struct OBJECT { struct TASK { long plan; long start; long finish; } ti,tj; int count; } ; OBJECT中嵌套定义了另外一个结构体 TASK。 (4) 结构体说明不允许递归,也就是不允 许在一个结构体说明中嵌套对自己的定义。 struct WRONG { struct WRONG a; /*错误 */ int count; } ; 6.1.3 结构体变量的定义 结构体变量定义有三种方法。 第一种方法就是上面用过的:先说明结构体,再定义结构体变量。 第二种方法是在说明结构体类型的同时定 义结构体变量。 例如: struct TIME { int hour; int minute; int second; } audit_begin,audit_end; 这种方法的语法格式是: struct 结构体名 { 成员表; } 结构体变量表; 第三种方法是在说明结构体时直接定义 结构体变量,并且不用指定结构体名。 struct { int hour; int minute; int second; } audit_begin,audit_end; 这种形式的语法为: struct { 成员表; } 结构体变量表; 不能混淆结构体名和结构体变量这两 个概念。结构体名实际上标识了程序员定 义的一种新的数据类型,编译系统不可能 为结构体名分配内存空间。只有当变量被 说明为这种由程序员自己定义的数据类型 的结构体时,编译系统才会为结构体变量 分配存储空间。在不引起混淆的情况下, 结构体变量可以简称为结构体。 6.1.4 结构体成员的引用 C语言中对结构体变量的使用是通过 对其成员的引用来实现的。一般不能对 结构体变量进行整体的引用。 引用的方法: 结构体变量名.成员名 符号“.”是依据结构体变量名存取结构体成员的运算符。 例6.1 用符号“.”引用结构体变量的成员。 #include stdio.h void main() { struct DATE
您可能关注的文档
- 学习情境14 部署J2EE工程.ppt
- 学习情境一 任务一任务二.ppt
- 学员总结复习本门课程V2.0.ppt
- 应用集成原理课程总结.ppt
- 英文缩略语(电子信息专业部分)03.doc
- 玉门电网调度地理信息数据库的开发.ppt
- 运输专用机床PLC设计.doc
- 职业技术学院2011级计算机应用技术专业人才培养方案.doc
- 中国大学计算机专业分析.doc
- 中南参考书.doc
- 皖2016S215_预制装配式混凝土排水检查井.pdf
- DB32∕T 4111-2021 预应力混凝土实心方桩基础技术规程.pdf
- DB32T4353_2022_房屋建筑和市政基础设施工程档案资料管理规程.pdf
- 各地汽车生产商名单.doc
- 岳麓版高中历史选修四第1单元第4课“千古一帝”秦始皇(课件2)(共36张).ppt
- Unit8task课件-牛津译林版八年级英语下册.pptx
- 2025年广西壮族自治区高中学业水平合格性考试模拟二历史试题.docx
- 安徽省庐巢联盟2024-2025学年高一下学期段考历史试题(二)(解析版).docx
- 福建省三明市2024-2025学年高二下学期期末质量检测历史试题(解析版).docx
- 2025届山西省高三下学期高考冲刺历史试题.docx
文档评论(0)