第九章结构 结构 结构数组 结构指针 链表 位运算 自定义类型
第九章 结构 结构 结构数组 结构指针 链表 位运算 自定义类型
结构:同—个数据项的若干成分构成的一个整体。 例如:学生档案,每个学生有学号、姓名、性别、出 生地、出生年月、学业成绩等。 学号[姓名性别出生地出生年 数学物理程序设让 出生月 出生日 学姓性出生地出生日期学习成绩 号名别国家省市/县年月旧数学物理程序设计
学号 姓名 性别 出生地 出生年 出生月 数学 物理 程序设计 出生日 学 号 姓 名 性 别 出生地 年 月 日 数学 物理 程序设计 出生日期 国家 省 市/县 学习成绩 结构:同一个数据项的若干成分构成的一个整体。 例如:学生档案,每个学生有学号、姓名、性别、出 生地、出生年月、学业成绩等
91结构 91.1结构的定义 struct student i long int num char name 201 float score, 定义一个结构类型: struct student
9.1 结构 9.1.1 结构的定义 struct student { long int num; char name[20]; float score; }; 定义一个结构类型: struct student
912结构变量的定义 1、先定义结构类型,再定义变量 struct student i long int num char name 20 float score struct student stul stu2 num name score stul200011 Zhang85 stu2200012Li94
9.1.2 结构变量的定义 1、先定义结构类型,再定义变量 struct student { long int num; char name[20]; float score; }; struct student stu1, stu2; num name score stu1 200011 Zhang 85 stu2 200012 Li 94
2、定义结构类型的同 3、不指定类型名,只定 时定义变量 义变量 struct student i struct 3 long int num, long int num; char name 20 char name 201 float score, float score S Stul, stu2 3stul, stu2
2、定义结构类型的同 时定义变量 struct student { long int num; char name[20]; float score; }stu1, stu2; 3、不指定类型名,只定 义变量 struct { long int num; char name[20]; float score; }stu1, stu2;
91.3结构变量的初始化 只有全局变量或静态变量才能初始化。 static struct student stu2=(200012, "Li,94) num name score stu2200012Li94
9.1.3 结构变量的初始化 只有全局变量或静态变量才能初始化。 static struct student stu2={200012, “Li”, 94}; num name score stu2 200012 Li 94
struct student long num, char name 20] float score, }stul={200011," Zhang",85}; num name score stul 200011 Zhang85
num name score stu1 200011 Zhang 85 struct student { long num; char name[20]; float score; } stu1={200011, "Zhang", 85};
9.1.4结构变量的使用 结构类型变量的整体引用 (1)不能整体输入输出,但相同类型的变量可以互 相赋值 printf("d%s%f",stul);非法 stu2=stu1 合法 (2)可以引用结构体变量的地址 printf("9x",&stu1);,输出stul的首地址
9.1.4 结构变量的使用 1、结构类型变量的整体引用 (1) 不能整体输入输出,但相同类型的变量可以互 相赋值 printf("%ld%s%f", stu1); 非法 stu2=stu1; 合法 (2) 可以引用结构体变量的地址 printf("%x", &stu1); 输出stu1的首地址
2、结构变量中分量的引用 struct student long int num; char name 201 float score 3 Stul, stu2 (1)结构变量分量 stulnum=9901 printf("%s",stu2 name) num name score stul 200011 Zhang85 stu2200012Li94
2、结构变量中分量的引用 struct student { long int num; char name[20]; float score; }stu1, stu2; (1) 结构变量.分量 stu1.num = 9901; printf("%s", stu2.name); num name score stu1 200011 Zhang 85 stu2 200012 Li 94
(2)结构变量中的分量可以依据它的类型进行各种 运算 x=stul score strcpy(stul. name, Wang) (3)可以引用结构变量中的分量的地址 scanf(%ld",&stul num)
(2) 结构变量中的分量可以依据它的类型进行各种 运算 x = stu1.score; strcpy(stu1.name, “Wang”); (3) 可以引用结构变量中的分量的地址 scanf("%ld", &stu1.num);