结构体等构造数据类型.pptVIP

  • 19
  • 0
  • 约1.52万字
  • 约 83页
  • 2017-04-21 发布于湖北
  • 举报
结构体等构造数据类型

结构体等构造数据类型 ;9.1 结构体 ; 9.1.1 结构体的说明 为了描述起来简单,我们要先定义一 个结构体类型:time。time是时间,10点 30分50秒就是一个时间数据,当然我们可 以用三个整型变量来表示一个时间, int hour; int minute; int second; 不能表示三个变量之间的逻辑关系。 ; 我们把时间说明为TIME ,而TIME 含有小时、分、秒三个成分,则TIME的结 构体说明是: struct TIME { int hour; int minute; int second; };; 其中struct 是关键字,TIME是结构体 的类型名,它实际上规定了一种新的复杂数 据类型。 于是在随后的程序中就可以使用TIME 定义结构体变量了。 struct TIME audit_begin; ;结构体的说明方式: struct 结构体名 { 成员表; }; 其中成员表可以由一个或几个成员组 成,要说明每个成员的类型和名称,注意 最后用分号结束。;结构???变量的定义方式: struct 结构体名 结构体变量表; 结构体说明要注意下面几点: (1)结构体说明并不引起存储分配,结构体 变量的定义才引起存储分配。存储分配时, 通常按照各成员在结构体说明中出现的先 后顺序依次排列。结构体成员的数据类型 可以是C语言的基本数据类型,也可以 是数组和指针类型。;(2) 结构体成员还可以是另一个结构体类型,结构体说明可以嵌套。 struct OBJECT { struct TASK { long plan; long start; long finish; } ti,tj; int count; } ; OBJECT中嵌套定义了另外一个结构体 TASK。;(3) 结构体说明不允许递归,也就是不允 许在一个结构体说明中嵌套对自己的定义。 struct WRONG { struct WRONG a; /*错误 */ int count; } ; ;9.1.2 结构体变量的定义 结构体变量定义有三种方法。 第一种方法就是上面用过的:先说明结构体,再定义结构体变量。 第二种方法是在说明结构体类型的同时定 义结构体变量。 例如: 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 { 成员表; } 结构体变量表;; 不能混淆结构体名和结构体变量这两 个概念。结构体名实际上标识了程序员定 义的一种新的数据类型,编译系统不可能 为结构体名分配内存空间。只有当变量被 说明为这种由程序员自己定义的数据类型 的结构体时,编译系统才会为结构体变量 分配存储空间。在不引起混淆的情况下, 结构体变量可以简称为结构体。;9.1.3 结构体成员的引用 C语言中对结构体变量的使用是通过 对其成员的引用来实现的。一般不能对 结构体变量进行整体的引用。 引用的方法: 结构体变量名.成员名 符号“.”是依据结构体变量名存取结构体成员的运算符。;例9.1 用符号“.”引用结构体变量的成员。 #include stdio.h void main() { struct TIME { int hour; int minute; int second; }; struct TIME audit_begin; ; audit_begin.hour=8; /*为audit_begin的每个成员赋值 */ audit_begin.minute=30; audit_begin.second=00; printf(\n audition ti

文档评论(0)

1亿VIP精品文档

相关文档