文档详情

C语言程序设计 王伟 第8章新.ppt

发布:2015-12-14约字共50页下载文档
文本预览下载声明
第八章 结构体和共用体 本章目录 前面已经介绍了C语言中的大部分数据类型,包括基本类型、数组类型、指针类型等。但在实际生活中有许多需要由不同类型的数据共同描述的实体,比如通讯录可由姓名、地址、电话、邮政编码等组成;一个学生的情况可由姓名、性别、年龄、成绩、家庭住址等数据项组成。C 语言提供了这样一种数据结构,它们是结构体类型和共用体类型。 8.1 结构体 在C语言中,基本类型数据在系统已经有系统定义好了,编程人员只要直接应用它们就可以了。但是结构体是一种构造类型,在使用该类型的数据之前必须先给出类型定义即先定义后使用。 8.1.1结构体类型的定义 1. 结构体类型的定义的一般形式为: struct 结构体类型名 { 数据类型1 成员名1; 数据类型2 成员名2; ┋ 数据类型n 成员名n; }; 结构体名的命名应该遵守标识符的命名规则。打括号内可以包含若干个成员,每个成员应有具体的数据类型。 8.1 结构体 例如,描述日期定义的结构体类型: struct date { int year; int month; int day; }; 其中date是结构体名,该结构体类型是由三个成员组成。成员都是整型,编者可根据自己需求编写成员,成员的数据类型可以是任何数据类型,当然也可以包含结构体类型。注意最后大括号后要加上分号“;”作为结束。 8.1 结构体 例如 struct student { char name[8]; char sex[2]; struct date birthday; }; 结构体类型struct student的定义中,成员birthday是结构体类型,这就形成了结构体的嵌套。 结构体类型的定义完成后,我们就可以应用该结构体类型的变量,它的使用和int ,float等相同,如上例中定义了struct date结构体类型,在struct student结构体定义中用到了struct date结构体类型的变量birthday。 8.1 结构体 8.1.2结构体变量的定义 定义了结构体类型之后,就可以在此基础上定义结构体类型的变量,结构体变量的定义可以采用以下三种方法: 1.先定义结构体类型再定义变量,例如上面已定义了一个结构体类型 struct date,可以用它来定义变量: struct date birthday; 2.在定义类型的同时定义变量上面可改写为: 例如 struct date { int year; int month; int day; } student1,student2; 即在结构体类型定义后直接写出变量名。 8.1 结构体 3.直接定义结构体类型变量,即不定义结构体类型名,在写出结构体类型后直接写出变量名 struct { int year; int month; int day; } student1,student2; 定义变量后,编译系统会为它分配存储空间,存储空间的大小是结构体各成员变量所占内存单元的总和。 结构体类型变量说明: 1)类型与变量的概念不同。对结构体类型变量来说,在定义时一般先定义结构体类型,然后再定义该结构体类型的变量。只能对结构体类型的变量赋值、存取或运算,而不能对结构体类型赋值、存取或运算。在编译时对类型是不分配存储空间的,只对变量分配存储空间。 8.1 结构体 2)对结构体变量中的成员,可以单独使用,其作用与地 位相当于普通变量。 3)结构体类型的成员可以是一个已定义的结构体类型变 量。如 结构体类型struct student中的struct date birthday; 这样先定义了一个struct date类型,它包括三个成 员,然后在定义结构体类型struct student时,成员 birth
显示全部
相似文档