C程序设计教程(第二版式)1-6.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 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

文档评论(0)

精华文档888 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档