中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第10章 结构类型

第10章 结构体 为整合不同数据类型、但相互关联的一组数据, C语言提供一种称为“结构体”的数据结构。 教学目的: 掌握结构体类型的定义,结构体变量的定义与引 用,指向结构体数据的指针变量的应用; 了解结构体数组「,链表,枚举型,共用型,已 有类型的别名定义等]。 2024/10/28 1
2024/10/28 1 第10章 结构体 为整合不同数据类型、但相互关联的一组数据, C语言提供一种称为“结构体”的数据结构。 教学目的: 掌握结构体类型的定义,结构体变量的定义与引 用,指向结构体数据的指针变量的应用; 了解结构体数组 [ ,链表,枚举型,共用型,已 有类型的别名定义等]

教学内容: 10.1结构体类型与结构体变量的定义 10.2结构体变量的引用与初始化 10.3结构体数组 10.4指向结构体数据的指针 本章要点 本章作业与上机实践 2024/10/28 2
2024/10/28 2 教学内容: 10.1 结构体类型与结构体变量的定义 10.2 结构体变量的引用与初始化 10.3 结构体数组 10.4 指向结构体数据的指针 本章要点 本章作业与上机实践

10.1*结构体类型与结构体变量的定义 「案例10.1]定义一组反映学生基本情况的结构 类型,用以存储学生的相关信息。 struct date /*日期结构类型*/ int year int month; int day ; 工 struct date /*日期结构类型*/ fint year,month,day; 污 2024/10/28 3
2024/10/28 3 10.1* 结构体类型与结构体变量的定义 [案例10.1] 定义一组反映学生基本情况的结构 类型,用以存储学生的相关信息。 struct date /*日期结构类型*/ {int year ; int month ; int day ; }; struct date /*日期结构类型*/ {int year, month, day ; };

struct std info /*学生信息结构类型*/ {char no[7]; 字符数组的长度=实 char name[9]; 际长度+1(存储结束标志) char sex[3]; struct date birthday; ; 允许是己定义的另一个结构体类型 struct score /*成绩结构类型*/ {char no[7]; int scorel,score2,score3; ; 2024/10/28 4
2024/10/28 4 struct std_info /*学生信息结构类型*/ {char no[7]; char name[9]; char sex[3]; struct date birthday; }; struct score /*成绩结构类型*/ {char no[7]; int score1,score2, score3; }; 字符数组的长度= 实 际长度 +1 (存储结束标志) 允许是已定义的另一个结构体类型

1、结构体类型的定义 struct结构体类型名 数据类型数据项1; 结构体类 数据类型数据项2; 型关键字 数据类型数据项n; }; 分号不能少! 2024/10/28 5
2024/10/28 5 1、 结构体类型的定义 struct 结构体类型名 { 数据类型 数据项1; 数据类型 数据项2; . . 数据类型 数据项n; }; 分号不能少! 结构体类 型关键字

(1)“结构体类型名”和“数据项”的命名规则,与 变量名相同。 (2)相同数据类型的数据项,既可逐个、逐行分别 定义,也可合并成一行定义。 例如,[案例10.1]中的结构体类型date。 (3)结构体类型中的数据项,允许是已定义的另一 个结构体类型。 例如,[案例10.1]中、结构体类型std info的数据 项“birthday'”。 2024/10/28 6
2024/10/28 6 (1)“结构体类型名”和“数据项”的命名规则,与 变量名相同。 (2)相同数据类型的数据项,既可逐个、逐行分别 定义,也可合并成一行定义。 例如,[案例10.1]中的结构体类型date。 (3)结构体类型中的数据项,允许是已定义的另一 个结构体类型。 例如, [案例10.1]中、结构体类型std_info的数据 项“birthday”

2、结构体变量的定义 (1)间接定义一先定义类型、再定义变量 例如,利用[案例10.1]中、结构体类型std info, 定义结构体变量student: 结构体类型名不可 struct std info student 缺!下列写法是错 误的: struct student 则结构体变量student拥有结构体类型std info的全 部数据项。 2024/10/28 7
2024/10/28 7 2、结构体变量的定义 (1)间接定义──先定义类型、再定义变量 例如,利用[案例10.1]中、结构体类型std_info, 定义结构体变量student: struct std_info student ; 则结构体变量student拥有结构体类型std_info的全 部数据项。 结构体类型名不可 缺!下列写法是错 误的: struct student ;

(2)直接定义一定义类型的同时,定义变量 struct[结构类型名] {.}结构变量表; 说明:结构类型中的数据项名(又称成员名), 可以与程序中的变量同名。 返回 2024/10/28 8
2024/10/28 8 (2)直接定义──定义类型的同时,定义变量 struct [结构类型名] { .} 结构变量表; 说明:结构类型中的数据项名(又称成员名), 可以与程序中的变量同名。 [返回]

10.2*结构体变量的引用与初始化 案例10.2]利用[案例10.1]中的结构体类型 std info,定义结构体变量student,用于存储和显示 1个学生的信息。 2024/10/28 9
2024/10/28 9 10.2* 结构体变量的引用与初始化 [案例10.2] 利用[案例10.1]中的结构体类型 std_info,定义结构体变量student,用于存储和显示 1个学生的信息

案例10.1]中定义的结构体类型 #include "struct.h" struct std info student={"000102","张三","男",{1980,9,20}}; #include "stdio.h" #include "conio.h" void main() 成员运算符 printf("No:%sn",student.no); printf("Name:%s\n",student.name); printf("Sex:%sIn",student.sex); printf("Birthday:%d-%d-%d\n",student.birthday.year, student.birthday.month, student.birthday.day ); getch(); 2024/10/28 10
2024/10/28 10 #include "struct.h " struct std_info student ={"000102","张三","男",{1980,9,20} }; #include "stdio.h" #include "conio.h" void main( ) { printf("No: %s\n", student . no); printf("Name: %s\n", student . name); printf("Sex: %s\n", student . sex); printf("Birthday: %d-%d-%d\n", student.birthday. year, student.birthday. month, student.birthday. day ) ; getch(); } [案例10.1]中定义的结构体类型 成员运算符
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第09章 指针(2/2).ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第09章 指针(1/2).ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第08章 编译预处理.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第07章 函数与变量作用域.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第06章 数组.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第05章 循环结构程序设计.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第04章 选择结构程序设计.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第03章 顺序结构程序设计.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第02章 数据类型.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第01章 C语言概述.ppt
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第十三讲 非线性结构及数据结构应用实例.pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第十二讲 数据结构基础(二).pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第十一讲 数据结构基础(一).pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第十讲 文件.pps
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第11章 结构体与共用体.ppt
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第九讲 位运算 枚举 类型定义 编译预处理.pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第八讲 结构与联合.pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第七讲 查找与排序算法.pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第六讲 指针.pps
- 清华大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第五讲 函数.pps
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第11章 位运算.ppt
- 中国水利水电出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第12章 文件.ppt
- 呼和浩特职业学院:《局域网组建管理与维护》课程教学资源(PPT课件)第2章 硬件设备及组建.ppt
- 呼和浩特职业学院:《局域网组建管理与维护》课程教学资源(PPT课件)序言(主讲人:青梅).ppt
- 呼和浩特职业学院:《局域网组建管理与维护》课程教学资源(PPT课件)第1章 局域网基础知识.ppt
- 呼和浩特职业学院:《局域网组建管理与维护》课程教学资源(PPT课件)第3章 网络操作系统.ppt
- 呼和浩特职业学院:《局域网组建管理与维护》课程教学资源(PPT课件)第4章 常见局域网实例剖析.ppt
- 呼和浩特职业学院:《局域网组建管理与维护》课程教学资源(PPT课件)第5章 DNS服务器的搭建.ppt
- 呼和浩特职业学院:《局域网组建管理与维护》课程教学资源(PPT课件)第6章 DHCP服务器的搭建配置与管理.ppt
- 呼和浩特职业学院:《局域网组建管理与维护》课程教学资源(PPT课件)第7章 文件服务器的搭建配置与管理.ppt
- 呼和浩特职业学院:《局域网组建管理与维护》课程教学资源(PPT课件)第8章 打印服务器的搭建配置与管理.ppt
- 呼和浩特职业学院:《局域网组建管理与维护》课程教学资源(PPT课件)第9章 Web服务器的搭建配置与管理.ppt
- 呼和浩特职业学院:《局域网组建管理与维护》课程教学资源(PPT课件)实习实训.ppt
- 呼和浩特职业学院:《局域网组建管理与维护》课程教学资源(PPT课件)第12章 VPN服务器的搭建管理.ppt
- 呼和浩特职业学院:《局域网组建管理与维护》课程教学资源(PPT课件)第13章 网络故障排除.ppt
- 呼和浩特职业学院:《局域网组建管理与维护》课程教学资源(PPT课件)第10章 邮件服务器的搭建配置与管理.ppt
- 呼和浩特职业学院:《局域网组建管理与维护》课程教学资源(PPT课件)第11章 FTP服务器的搭建配置与管理.ppt
- 呼和浩特职业学院:《局域网组建管理与维护》课程教学资源(试卷习题)简答题试题.doc
- 呼和浩特职业学院:《局域网组建管理与维护》课程教学资源(试卷习题)简答题答案.doc
- 呼和浩特职业学院:《局域网组建管理与维护》课程教学资源(试卷习题)选择题试题.doc