第11章结构体与共用体摘要.ppt

第11章 结构体与共用体 第11章 结构体与共用体 为将不同数据类型、但相互关联的一组数据,组合成一个有机整体使用,C语言提供一种称为结构体的数据结构。 结构体是数目固定、类型不同的若干有序变量的集合。 11.1 结构体类型与结构体变量的定义 11.1.1 结构体类型定义 struct 结构体类型名 { 数据类型 数据项1; 数据类型 数据项2; …… …… 数据类型 数据项n; }; 11.1.1 结构体类型定义 例如:定义日期结构类型:由年月日三项组成 struct date {int year; int month; int day; }; 11.1.1 结构体类型定义 说明: (1)结构体类型中的数据项,既可以是基本数据类型,也允许是另一个已经定义的结构类型。 (2)结构体类型的长度等于各个成员的长度总和。 11.1.1 结构体类型定义 定义学生信息结构体类型:由学号、姓名、性别、生日4项组成. struct date {int year; int month; int day;}; struct std_info {char no[7]; char name[9]; char sex; struct date birthday;}; 11.1.2 结构体变量定义 1.定义结构体变量的方法,可概括为两种: (1)间接定义法──先定义结构体类型、再定义结构体变量 例如,利用已经定义的学生信息结构体类型std_info,定义一个相应的结构体变量 struct std_info student; 其中,student为结构体变量名,其拥有结构体类型std_info的全部成员。 11.1.2 结构变量定义 (2)直接定义法──在定义结构体类型的同时,定义结构变量。 11.2 结构体变量的引用与初始化 11.2 结构体变量的引用与初始化 例如: struct std_info {char no[7]; char name[9]; char sex; }student; 则引用各个成员的形式为: student.no, student.name, student.sex, student.no[0], student.name[0] 11.2 结构体变量的引用与初始化 main() { struct std_info {char no[7], name[9],sex; }student; scanf(%c%s%s,student.sex, student.no,student.name); printf(%s , %s , %c , student.no, student.name, student.sex);} 11.2 结构体变量的引用与初始化 说明: 如果某成员本身又是一个结构类型,则只能通过多级的分量运算,对最低一级的成员进行引用。 结构变量.成员.子成员.….最低1级子成员 如,引用结构变量student中的birthday成员的格式分别为: student.birthday.year student.birthday.month student.birthday.day 11.2 结构体变量的引用与初始化 2.结构体变量的初始化 结构体变量初始化格式,与一维数组相似: 结构变量={初值表} 例如,struct std_info student={“000102”, “张三”, ‘m’, {1980,9,20}}。 11.3 结构体数组 结构体数组的每一个元素,都是结构体类型数据,均包含结构体类型的所有成员。 例:利用结构体类型std_info,定义一个结构体数组student,用于存储和显示两个学生的基本情况。 11.3 结构体数组 /*输出三个学生的基本情况*/ for(i=0; i3; i++)

文档评论(0)

1亿VIP精品文档

相关文档