C程序设计第9章 用户自己建立数据类型
第四版
第9章 用户自己建立数据类型9.1 定义和使用结构体变量 9.2 使用结构体数组 9.3 结构体指针 9.4 用指针处理链表 9.5 共用体类型 9.6 使用枚举类型 9.7 用typedef声明新类型名 声明新类型名
第四版
9.1 定义和使用结构体变量9.1.1 自己建立结构体类型 9.1.2 定义结构体类型变量 9.1.3 结构体变量的初始化和引用
第四版
9.1.1 自己建立结构体类型用户自己建立由不同类型数据组成的组合型的数据结 构,它称为结构体。 它称为结构体。 结构体 例如,一个学生的学号、姓名、性别、年龄、成绩、 例如,一个学生的学号、姓名、性别、年龄、成绩、 家庭地址等项,是属于同一个学生的,因此组成一个 家庭地址等项,是属于同一个学生的,因此组成一个 组合数据, 的变量, 组合数据,如student_1的变量,反映它们之间的内 的变量 在联系。 在联系。
第四版
9.1.1 自己建立结构体类型struct Student { int num; char name[20]; char sex; int age; float score; char addr[30]; }; 由程序设计者指定了一个结 构体类型struct Student。 构体类型 。 它包括 num,name,sex,age,score,ad dr等不同类型的成员。 等不同类型的成员。 等不同类型的成员
第四版
9.1.1 自己建立结构体类型声明一个结构体类型的一般形式为: 声明一个结构体类型的一般形式为: 一个结构体类型的一般形式为 struct 结构体名 { 成员表列 }; 成员名; 类型名 成员名
第四版
9.1.1 自己建立结构体类型说明: 说明: (1) 可以根据需要设计出多种结构体类型,例如 可以根据需要设计出多种结构体类型, 根据需要设计出多种结构体类型 struct Teacher struct Worker struct Date等结构体类型 等结构体类型 各自包含不同的成员
第四版
9.1.1 自己建立结构体类型说明: 说明: (2)结构体成员可以属于另一个结构体类型。 结构体成员可以属于另一个结构体类型。 结构体成员可以属于另一个结构体类型 struct Date { int month; int day; int year; };
struct Stu { int num;char name[20]; char sex;int age; struct Date birthday; char addr[30]; }; num name sex age birthday month day year addr
第四版
9.1.2 定义结构体类型变量1. 先声明结构体类型,再定义该类型变量 先声明结构体类型, struct Student { int num; char name[20]; char sex; int age; float score; char addr[30]; }; struct Student student1,student2; 结构体类型名 结构体变量名
第四版
9.1.2 定义结构体类型变量2.在声明类型的同时定义变量 在声明类型的同时定义变量 struct Student { int num; char name[20]; char sex; int age; float score; char addr[30]; } student1,student2;
第四版
9.1.2 定义结构体类型变量3. 不指定类型名而直接定义结构体类型变量 struct { int num; char name[20]; char sex; int age; float score; char addr[30]; } student1,student2;
第四版
9.1.2 定义结构体类型变量(
1) 结构体类型与结构体变量是不同的概念,不要混同。只能对变 结构体类型与结构体变量是不同的概念,不要混同。 量赋值、存取或运算,而不能对一个类型赋值、存取或运算。 量赋值、存取或运算,而不能对一个类型赋值、存取或运算。在编译 时,对类型是不分配空间的,只对变量分配空间。 对类型是不分配空间的,只对变量分配空间。 (2) 结构体类型中的成员名可以与程序中的变量名相同,但二者不 结构体类型中的成员名可以与程序中的变量名相同, 代表同一对象。 代表同一对象。 (3) 结构体变量中的成员可以单独使用,它的作用与地位相当于普 结构体变量中的成员可以单独使用, 通变量。 通变量。
第四版
9.1.3 结构体变量的初始化和引用把一个学生的信息(包括学号 姓名、性别、住址)放在一个结构 包括学号、 例9.1 把一个学生的信息 包括学号、姓名、性别、住址 放在一个结构 体变量中,然后输出这个学生的信息。 体变量中,然后输出这个学生的信息。 #include <stdio.h> int main() { struct student { long int num; char name[20]; char sex; char addr[20]; }a={10101,"Li Lin",'M',"123 Beijing Road"}; printf("NO.:%ld\nname:%s\nsex:%c\naddress:%s\n", a.num,,a.sex,a.addr); return 0; }
第四版
#include <stdio.h> int main() { struct Student { long int num; char sex; char name[20]; char addr[20];
}a={10101,“Li Lin”,‘M’, “123 Beijing Road”}; a.num=10010; 对
printf(“%s\n”,a); 不对 …… }
第四版
#include <stdio.h> int main() { struct Student { long int num; char sex; struct Student b; b=a; …… } 对 对 b.num++; char name[20]; char addr[20];
}a={10101,“Li Lin”,‘M’, “123 Beijing Road”};
第四版
#include <stdio.h> int main() { struct Student { long int num; char sex; char name[20]; char addr[20]; 对
}a={10101,“Li Lin”,‘M’, “123 Beijing Road”}; scanf(″%ld″,&a.num); printf(″%o″,&a); …… } 对
scanf(“%ld,%s,%c,%s\n”,&a); 错
第四版
#include <stdio.h> int main() { struct Date { int month; int day; int year; }; struct Stu { int num;char name[20]; char sex;int age; struct Date birthday; char addr[30]; }a,b; a.birthday.month=12; 对 a.age=10; b.age=9; 对 sum=a.age+b.age; 对 …… }
第四版
输入两个学生的学号、姓名和成绩,输出成绩较高学生的学号、姓名和成绩。 例9.2 输入两个学生的学号、姓名和成绩,输出成绩较高学生的学号、姓名和成绩。 #include <stdio.h> int main() { struct stu { int num; char name[20]; float score; }stu1,stu2; scanf("%d%s%f",&stu1.num,,&stu1.score); scanf("%d%s%f",&stu2.num,,&stu2.score); printf("The higher score is:\n"); if (stu1.score>stu2.score) printf("%d %s %6.2f\n",stu1.num,, stu1.score); else if (stu1.score<stu2.score) printf("%d %s %6.2f\n",stu2.num,, stu2.score); else { printf("%d %s %6.2f\n",stu1.num,stu1.nam
e, stu1.score); printf("%d %s %6.2f\n",stu2.num,, stu2.score); } return 0; }
第四版
9.2 使用结构体数组9.2.1 定义结构体数组 9.2.2 结构体数组的应用举例
第四版
9.2.1定义结构体数组 9.2.1定义结构体数组例9.3 有3个候选人,每个选民只能投票选一人, 个候选人,每个选民只能投票选一人, 个候选人 要求编一个统计选票的程序, 要求编一个统计选票的程序,先后输入被选人的名字 ,最后输出各人得票结果。 最后输出各人得票结果。
…… 此处隐藏:2209字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [教育文库]夜场KTV服务员的岗位职责及工作流程[1]
- [教育文库]企划、网络、市场绩效考核方案
- [教育文库]学党史、知党情、强党性--“党的基本理
- [教育文库]2016年高考物理大一轮总复习(江苏专版
- [教育文库]干部廉洁自律自查自纠的报告
- [教育文库]2010年北京大学心理学系拟录取硕士研究
- [教育文库]资金时间价值练习题及答案
- [教育文库]保护环境的心得体会
- [教育文库]英语角内容:英语趣味小知识
- [教育文库]档案收集与管理工作通知
- [教育文库]劳动规章制度范本范本
- [教育文库]高考物理一轮复习课后限时作业1运动的
- [教育文库]机械工艺夹具毕业设计195推动架设计说
- [教育文库]通用技术教学比赛说课稿2
- [教育文库]2018年四年级英语下册 Module 7 Unit 2
- [教育文库]第2章 宽带IP网络的体系结构
- [教育文库]九年级化学第五单元课题3《根据化学方
- [教育文库]小学英语六年级情态动词用法归纳
- [教育文库]甲级单位编制窑井盖项目可行性报告(立
- [教育文库]2016-2021年中国城市规划行业全景调研
- 高考英语听力十大场景词汇总结
- 全省领导班子思想政治建设座谈会会议精
- 人教版新课标高一英语提优竞赛试题 下
- 江西省2014年生物中考试题
- 长沙镇食品药品安全事故应急预案
- 《金刚石、石墨和C60》片段教学设计
- 福州教育学院(王旭东)
- 基于EDA音乐播放器的设计
- 9、古诗两首《夜书所见》《九月九日忆
- 小学语文课外阅读有效策略探讨
- 贵州文化产业发展成支柱产业的问卷调查
- 膀胱类癌的诊治体会(附3例报告)
- 发动机积碳产生的原因
- Configuring Code Composer Studio for
- 学生良好的心理素质如何培养点滴谈
- 46 电沉积法制备锂离子电池用硅-锂薄膜
- 美舍雅阁公司管理中各部门职责
- 去壳剥皮的小妙招
- 六自由度运动平台的仿真研究
- Pride and Prejudice(傲慢与偏见)




