第13章结构体的应用 13.17解出用户构造的数据类型 13.2结构体类型说明及结构体变量 13.3结约体数组 13.4函数之问结构体类型的数据传递 13.5利用结构体变量构反静态链表 13.6利用指分处理动态链表 点专此处结束放殃 4合
第13章 结构体的应用 13.1 了解由用户构造的数据类型 13.2 结构体类型说明及结构体变量 13.3 结构体数组 13.4 函数之间结构体类型的数据传递 13.5 利用结构体变量构成静态链表 13.6 利用指针处理动态链表
13.1了解由用户构造 的数据类型 13.1.1可以由用户构造的数据 类型 713.1.2用yped定义类型名 点专此处结束放殃 4合
13.1 了解由用户构造 的数据类型 13.1.1 可以由用户构造的数据 类型 13.1.2 用typedef定义类型名
132结构体类型说明及 结构体变量 草13.2.1结构体类型的说明 毛13.2.2结构体变量的定义 13.2.3结构体变量的初始化 13.2.4结构体变量中成员的访 点专此处结束放殃 4合
13.2 结构体类型说明及 结构体变量 13.2.1 结构体类型的说明 13.2.2 结构体变量的定义 13.2.3 结构体变量的初始化 13.2.4 结构体变量中成员的访 问
133结构体数组 从例13.1中可以看出,利用结构体变 量只能存放一名学生的信息。若要保存多 名学生的信息就要使用结构体类型的数组。 713.3.1结构体数组的定义 定义结构体数组的方法和定义结构体 变量的方法一样:可以先说明结构体类型, 再用类型名定义数组;也可以在说明类型 的同时定义数组。例如 点专此处结束放殃 4合
13.3 结构体数组 从例13.1中可以看出,利用结构体变 量只能存放一名学生的信息。若要保存多 名学生的信息就要使用结构体类型的数组。 13.3.1 结构体数组的定义 定义结构体数组的方法和定义结构体 变量的方法一样:可以先说明结构体类型, 再用类型名定义数组;也可以在说明类型 的同时定义数组。例如:
struct student i int num; char name g char sex; struct date birthday; float score3 7 struct student pers 3 点专此处结束放殃 4合
struct student { int num; char name[9]; char sex; struct date birthday; float score[3]; }; struct student pers[3];
也可以采用以下形式: typedef struct int num; char name 9: char sex: struct f int year, month, day i birthday; float score 3; ISTUS STU pers 3 i 点专此处结束放殃 4合
也可以采用以下形式: typedef struct { int num; char name[9]; char sex; struct { int year, month, day ;} birthday; float score[3]; }STU; STU pers[3];
以上两种形式都是先说明了类型名 ( struct student或STU),再用类型名定 义了具有3个元素的结构体数组 perso 若要直接定义结构体数组,可以采用 以下两种形式: 点专此处结束放殃 4合
以上两种形式都是先说明了类型名 (struct student或STU),再用类型名定 义了具有3个元素的结构体数组pers。 若要直接定义结构体数组,可以采用 以下两种形式:
点专此处结束放殃 4合
结构体数组pers中的每个元素都是 个结构体类型,如图13-3所示。它们在内 存中也占据着连续的存储单元 birthda ntm name score[0 score[I score[2 year month day pers[o pers] 图13-3数组pers的结构示意图 点专此处结束放殃 4合
结构体数组pers中的每个元素都是一 个结构体类型,如图13-3所示。它们在内 存中也占据着连续的存储单元。 图13-3 数组pers 的结构示意图
713.3.2结构体数组的初始化 和其他类型的数组一样,结构体数组也 可以在定义的同时进行初始化。例如 struct student pers 3=& {1, Zhanghua","M’,1961,10,8,76.5,78.0,82.0)} {2," Wangwei",F,1960,12,20,70.0,85.5,76.0}, 3," Liming","M',1961,3,16,80.0,84.5,91.0}}; 点专此处结束放殃 4合
13.3.2 结构体数组的初始化 和其他类型的数组一样,结构体数组也 可以在定义的同时进行初始化。例如: struct student pers[3]={ {1,"Zhanghua",'M',1961,10,8,76.5,78.0,82.0}, {2,"Wangwei",'F',1960,12,20,70.0,85.5,76.0}, {3,"Liming", 'M',1961,3,16,80.0,84.5,91.0} };