北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第九章 结构体与共用体

C语言程序设计 第9章结构体与共用体 八此京故太受计算机系
1 第9章 结构体与共用体 北京科技大学 计算机系 C 语言程序设计

第9章结构体与共用体 9.1结构体 9.2共用体 9.3枚举类型与类型命名 2021/2/20
2021/2/20 2 第9章 结构体与共用体 9.1 结构体 9.2 共用体 9.3 枚举类型与类型命名

91结控体 911结构体与结构体类型的定义 信息管逕 个学生的信息有学号、姓名、性别、年龄、住 址、成绩等。 本图书的信息有分类编号、书名、作者、出版社、 出版日期、价格、库存量等。 如何描述这些类型不同的相关数据? 结构体 种构造类型数据 结构体由若干不同类型的数据项组成, 构成结构体的各个数据项称为结构体成员。 2021/2/20
2021/2/20 3 一个学生的信息有学号、姓名、性别、年龄、住 址、成绩等。 一本图书的信息有分类编号、书名、作者、出版社、 出版日期、价格、库存量等。 如何描述这些类型不同的相关数据? 9.1 结构体 9.1.1 结构体与结构体类型的定义 信息管理 结构体——一种构造类型数据 结构体由若干不同类型的数据项组成, 构成结构体的各个数据项称为结构体成员

91结控体 911结构体与结构体类型的定义 结杓体类烈定义的一散形式 struct结构体名 struct为关键字; {数据类型1成员名1 结构体名是用户定义 数据类型2成员名2; 的类型标识。 ●{}中是组成该结构体 数据类型n成员名n; 的成员。成员的数据 类型可以是C语言所允 许的任何数据类型。 2021/2/20
2021/2/20 4 struct 结构体名 { 数据类型1 成员名1; 数据类型2 成员名2; …… 数据类型n 成员名n; }; 9.1 结构体 9.1.1 结构体与结构体类型的定义 结构体类型定义的一般形式: ⚫ struct为关键字; ⚫ 结构体名是用户定义 的类型标识。 ⚫ { }中是组成该结构体 的成员。成员的数据 类型可以是C语言所允 许的任何数据类型

91结控体 911结构体与结构体类型的定义 例如学生类型的定义: struct student { char num8;/学号是字符数组类型 char name30;/姓名是字符数组类型* char sex; /性别是字符型 int age; /年龄是整型 char addr|60;/住址是字符数组类型*/ int scorel6;/成绩是整型数组类型* 2021/2/20
2021/2/20 5 例如图书类型的定义: struct bookcard { char num[10]; /*图书分类编号是字符数组类型*/ char name[30]; /*书名是字符数组类型*/ char author[30]; /*作者是字符数组类型*/ char publisher[60]; /*出版社是字符数组类型*/ float price; /*价格是单精度实型*/ int n; /*库存量是整型*/ }; 例如学生类型的定义: struct student { char num[8]; /* 学号是字符数组类型 */ char name[30]; /* 姓名是字符数组类型 */ char sex; /* 性别是字符型 */ int age; /* 年龄是整型 */ char addr[60]; /* 住址是字符数组类型 */ int score[6]; /* 成绩是整型数组类型 */ }; 9.1 结构体 9.1.1 结构体与结构体类型的定义

91结控体 912结构体变量的定义与初始化 1.结构体类型变量的定义 struct student 利用已定义的结构体类型名定mm 8个字节 struct结构体名变量名表;name30个字节 例如: 1个字节 age 2个字节 struct bookcard book1[100 addr 60个字节 ruct student sI30,t1,t2;scoe12个字节 按照结构体类型的组成,系统为定义的结构体 变量分配內存单元。结构体变量的各个成员在内存 中占用连续存储区域,结构体变量所占内存大小为 结构体中每个成员所占用内存的长度之和。o202120
2021/2/20 6 9.1 结构体 9.1.2 结构体变量的定义与初始化 1. 结构体类型变量的定义 ⚫ 利用已定义的结构体类型名定义变量 struct 结构体名 变量名表; 例如: struct bookcard book1[100]; struct student s[30], t1, t2; 按照结构体类型的组成,系统为定义的结构体 变量分配内存单元。结构体变量的各个成员在内存 中占用连续存储区域,结构体变量所占内存大小为 结构体中每个成员所占用内存的长度之和。 struct student num 8个字节 name 30个字节 sex 1个字节 age 2个字节 addr 60个字节 score 12个字节

91结控体 结构体类型与变量的说明 struct date f int year,month, day; 3; num 8个字节 struct student name 30个字节 i char num[8 1个字节 char name 301; year2个字节 char sex: struct date birth d/ birthdaymonth2个字节 char addr 60li day2个字节 int score|6]」 addr 60个字节 score 12个字节 对象。 2021/2/20
2021/2/20 7 9.1 结构体 结构体类型与变量的说明 ⚫ 类型与变量是不同的概念。 ➢ 应先定义一个结构体类型,而后再定义结构体变量。 ➢ 系统对类型不分配空间,仅对变量分配空间。 ➢ 只能对变量赋值、存取或运算,而不能对一个类型 赋值、存取或运算。 ⚫ 成员也可以是结构变量。 ⚫ 对结构中的成员,可以单独使用,它的作用与 地位相当于普通变量。 ⚫ 成员名可与程序中的变量名相同时,也可与不 同结构体类型的成员名相同,二者代表不同的 对象。 struct date { int year,month,day;}; struct student { char num[8]; char name[30]; char sex; struct date birthday; /* 成员为结构体类型 */ char addr[60]; int score[6]; }; num 8个字节 name 30个字节 sex 1个字节 birthday year 2个字节 month 2个字节 day 2个字节 addr 60个字节 score 12个字节

91结控体 8 912结构体变量的定义与初始化 1.结构体类型变量的定义 在定义结构体类型的同时定义变量 struct结构体名 成员定义表; }变量名表; 例如: struct student f char num[8], name 20], sex; Int age; float score }st30]; 2021/2/20
2021/2/20 8 9.1 结构体 9.1.2 结构体变量的定义与初始化 1. 结构体类型变量的定义 ⚫ 在定义结构体类型的同时定义变量 例如: struct student { char num[8],name[20],sex; int age; float score; }st[30]; struct 结构体名 { 成员定义表; }变量名表;

91结控体 912结构体变量的定义与初始化 1.结构体类型变量的定义 ●直接定义结构体类型变量 struct {成员定义表; }变量名表; 例如: struct d char num[], name[20], sex; int age; fle oat score, 3st30], a, b, c; 2021/2/20
2021/2/20 9 9.1 结构体 9.1.2 结构体变量的定义与初始化 1. 结构体类型变量的定义 ⚫ 直接定义结构体类型变量 例如: struct { char num[8],name[20],sex; int age; float score; }st[30], a, b, c; struct { 成员定义表; }变量名表;

91结控体 10 9.12结构体变量的定义与初始化 2.结构体变量的初始化 【例94】结构体变量的初始化。 struct date 如果初值个数少于结构体成员个数 int year,mon则将无初值对应的成员赋以0值。 struct student如果初值个数多于结构体成员个数, i char num 8 则编译出错。 struct date birthday oat score, }a={"96060ll"," Li ming",M,{1977,12,9},83}, b={"9608025", Zhang liming";F",{1978,5,10},87},c 2021/2/20
2021/2/20 10 9.1 结构体 9.1.2 结构体变量的定义与初始化 2. 结构体变量的初始化 【例9.4】结构体变量的初始化。 struct date { int year, month, day;}; struct student { char num[8], name[20], sex; struct date birthday; float score; }a={"9606011","Li ming",'M',{1977,12,9},83}, b={"9608025","Zhang liming",'F',{1978,5,10},87},c; 如果初值个数少于结构体成员个数, 则将无初值对应的成员赋以0值。 如果初值个数多于结构体成员个数, 则编译出错
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第八章 指针.ppt
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第七章 函数与预处理命令.ppt
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第六章 数组.ppt
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第五章 while循环控制.ppt
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第四章 i语句.ppt
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第三章 程序的三种基本结构.ppt
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第二章 C语言的基础.ppt
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第一章 概述.ppt
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第十章 文件.ppt
- 国防工业出版社:《网络安全技术教程》教材书籍电子版(PDF电子书,共六章,主编:赵小林).pdf
- 《Linux 基础及应用》 第九章 网络基础.ppt
- 《Linux 基础及应用》 第八章 应用程序.ppt
- 《Linux 基础及应用》 第七章 进程管理与系统监视.ppt
- 《Linux 基础及应用》 第六章 文件系统与文件管理.ppt
- 《Linux 基础及应用》 第五章 用户与组群管理.ppt
- 《Linux 基础及应用》 第四章 字符界面与 Shell.ppt
- 《Linux 基础及应用》 第三章 X Window图形代用户界面.ppt
- 《Linux 基础及应用》 第二章 安装与删除 Linux.ppt
- 《Linux 基础及应用》 第一章 Linux概况.ppt
- 《Linux 基础及应用》 第十章 网络服务器.ppt
- 软件工程师培训系列教材:《Java语言基础》电子课件.ppt
- 《autocad2007快速入门》学习资料(共十一章).pdf
- 清华大学:《C语言程序设计》课程电子教案(PPT教学课件,第二版)第1-第7章.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第一章 绪论、第二章 媒体与媒体技术.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第一章 绪论、第二章 媒体与媒体技术、第三章 多媒体数据压缩技术.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第一章 绪论、第二章 媒体与媒体技术.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)霍夫曼编码、预测编码、统计编码、变换编码.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第三章 多媒体数据压缩技术.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第四章 多媒体硬基础.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)复习题.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第十章 分布式多媒体处理技术.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第十一章 多媒体应用.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第五章 多媒体软平台.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第六章 多媒体编程技术.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第七章 多媒体通信网络技术.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第八章 多媒体信息管理技术.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第九章 多模态人机交互技术.ppt
- 武汉理工大学:《数据结构》 第一章 绪论.ppt
- 武汉理工大学:《数据结构》 第七章 查找.ppt
- 武汉理工大学:《数据结构》 第三章 栈与队列.ppt