8.1结构体的认知(课件)-《 C语言程序设计》同步教学(电子工业出版社)

2024-08-11
| 28页
| 54人阅读
| 6人下载
普通

内容正文:

第八章 复杂数据类型--结构体与共用体 1 CONTENTS 目录 01 02 结构体变量定义、初始化及应用 结构体的认知 03 结构体数组及应用 04 共用体及其应用 C语言 知识树 My First Template 1、结构体的认知 C语言程序设计 4 C语言 C语言程序设计 结构体及其应用 知识回顾 数据类型 占用空间 取值范围 short[int] 16位(2个字节) -32768~32767(-215~215-1) int 32位(4个字节) -2147483648~2147483647(-231~231-1) long[int] 32位(4个字节) -2147483648~2147483647(-231~231-1) unsigned short[int] 16位(2个字节) 0~65535(0~216-1) unsigned int 32位(4个字节) 0~4294967295(0~232-1) unsigned long[int] 32位(4个字节) 0~4294967295(0~232-1) char 8位(1个字节) -128~127(-27~27-1) float 32位(4个字节) 1.2×10-38~3.4×1038 double 64位(8个字节) 2.3×10-308~1.7×10308 int a; float b,c; My First Template C语言 任务回顾 C语言程序设计 结构体及其应用 存储全班50个学生的成绩,并计算平均分。 a[0] a[49] 89 56 78 60 76 …… 99 90 My First Template C语言 问题:存储一个班级中 5 名学员的信息(学号、姓名、性别和成绩) I. 使用数组 Mary John Peter Rose Kate F M F M F 01 02 03 04 05 89 78.5 67 97.5 64 解决方案: score num sex name 不能建立数组间的关系 II. 使用多维数组 Mary John Peter Rose Kate F M F M F 01 02 03 04 05 89 78.5 67 97.5 64 C 语言不允许一个数组包含多种数据类型 III. 使用结构体 num name sex score C 语言引入了称为结构体的数据存储方式 “结构体” 是一种构造数据类型 C语言程序设计 结构体及其应用 My First Template 结构体的定义 01 C语言 结构体是一种构造数据类型 用途:把不同类型的数据组合成一个整体-------自定义数据类型 结构体类型定义 struct [结构体名] { 类型标识符 成员名; 类型标识符 成员名; ……………. }; 成员类型可以是 基本型或构造型 struct是关键字, 不能省略 合法标识符 可省:无名结构体 结构体 C语言程序设计 结构体及其应用 My First Template C语言 例 struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; }; name num sex age score addr 4字节 2字节 20字节 1字节 4字节 30字节 … ….. 结构体类型定义描述结构 的组织形式,不分配内存 例子图解 C语言程序设计 结构体及其应用 声明一个类型为 student 结构的变量时,将会为该变量分配内存,大小是大于或等于其所有成员变量的大小之和 My First Template C语言 总结: 结构体与基本类型(int,char,float等)不同,基本类型是系统提供的标准类型,可以直接拿来定义变量,而结构体必须先定义一个结构体类型,再用它定义变量。 结构体类型定义使用的struct关键字开头,并且不能省略 定义好一个结构体类型后,系统并不会分配一块内存单元用来存放各个数据成员,而是编译系统声明,这是一个“结构体类型”,由哪些类型的成员构成,并把它们当作一个整体来处理。 C语言程序设计 结构体及其应用 My First Template 2、结构体变量的定义、初始化与引用 C语言程序设计 12 C语言程序设计 结构体及其应用 C语言 为什么要使用结构体? 结构体是什么? My First Template C语言 结构体是一种构造数据类型 用途:把不同类型的数据组合成一个整体-------自定义数据类型 结构体类型定义 struct [结构体名] { 类型标识符 成员名; 类型标识符 成员名; ……………. }; 成员类型可以是 基本型或构造型 struct是关键字, 不能省略 合法标识符 可省:无名结构体 结构体 C语言程序设计 结构体及其应用 My First Template CONTENTS 内容 01 结构体变量的定义 02 03 结构体变量的初始化 结构体变量的引用 15 结构体变量的定义 01 C语言 先定义结构体类型,再定义结构体变量 一般形式: struct 结构体名 { 类型标识符 成员名; 类型标识符 成员名; ……………. }; struct 结构体名 变量名表列; 结构体变量的定义 C语言程序设计 结构体及其应用 例 struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; }; struct student stu1,stu2; My First Template C语言 一般形式: struct 结构体名 { 类型标识符 成员名; 类型标识符 成员名; ……………. }变量名表列; 例 struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; }stu1,stu2; 定义结构体的同时定义结构体变量 C语言程序设计 结构体及其应用 My First Template C语言 一般形式: struct { 类型标识符 成员名; 类型标识符 成员名; ……………. }变量名表列; 例 struct { int num; char name[20]; char sex; int age; float score; char addr[30]; }stu1,stu2; 用无名结构体直接定义 变量只能一次 直接定义结构体变量 C语言程序设计 结构体及其应用 My First Template 结构体变量的初始化 02 C语言 形式一: struct 结构体名 { 类型标识符 成员名; 类型标识符 成员名; ……………. }; struct 结构体名 结构体变量={初始数据}; 例 struct student { int num; char name[20]; char sex; int age; char addr[30]; }; struct student stu1={112,“Wang Lin”,‘M’,19, “200 Beijing Road”}; 结构体变量的初始化 C语言程序设计 结构体及其应用 My First Template C语言 struct 结构体名 { 类型标识符 成员名; 类型标识符 成员名; ……………. }结构体变量={初始数据}; 例 struct student { int num; char name[20]; char sex; int age; char addr[30]; }stu1={112,“Wang Lin”,‘M’,19, “200 Beijing Road”}; 形式二: 结构体变量的初始化 C语言程序设计 结构体及其应用 My First Template C语言 struct { 类型标识符 成员名; 类型标识符 成员名; ……………. }结构体变量={初始数据}; 例 struct { int num; char name[20]; char sex; int age; char addr[30]; }stu1={112,“Wang Lin”,‘M’,19, “200 Beijing Road”}; 形式三: 结构体变量的初始化 C语言程序设计 结构体及其应用 My First Template 结构体变量的引用 03 C语言 引用规则 结构体变量不能整体引用,只能引用变量成员 成员(分量)运算符 优先级: 1 结合性:从左向右 引用方式: 结构体变量名.成员名 结构体变量的引用 C语言程序设计 结构体及其应用 struct{ int num; int age; char name[20]; char sex; }stu1,stu2; printf("%s ",stu1) scanf("%d, %d %s,%c",&stu1) stu1.age=20; stu1.sex='F' strcpy(stu1.name,"wang"); scanf("%d",&stu1.age) My First Template C语言 可以将一个结构体变量赋值给另一个结构体变量 结构体变量的引用 C语言程序设计 结构体及其应用 struct{ int num; int age; char name[20]; char sex; }stu1,stu2; stu1=stu2 stu1.num=stu2.num; stu1.age=stu2.age; strcpy(stu1.name,stu2.name); stu1.sex=stu2.sex 相当于 My First Template C语言 struct date { int month; int day; int year; }; struct{ int num; char name[20]; char sex; struct date birthday; float score; }student1,student2; 表示结构变量成员的一般形式是:结构变量名.成员名 例如:student1.num、student2.sex、student1.birthday.month 嵌套结构 C语言程序设计 结构体及其应用 结构体嵌套时逐级引用 My First Template C语言 结构体类型与结构体变量概念不同 类型:不分配内存; 变量:分配内存 类型:不能赋值、存取、运算; 变量:可以 结构体可嵌套 结构体成员名与程序中变量名可相同,不会混淆 C语言程序设计 结构体及其应用 My First Template $$

资源预览图

8.1结构体的认知(课件)-《 C语言程序设计》同步教学(电子工业出版社)
1
8.1结构体的认知(课件)-《 C语言程序设计》同步教学(电子工业出版社)
2
8.1结构体的认知(课件)-《 C语言程序设计》同步教学(电子工业出版社)
3
8.1结构体的认知(课件)-《 C语言程序设计》同步教学(电子工业出版社)
4
8.1结构体的认知(课件)-《 C语言程序设计》同步教学(电子工业出版社)
5
8.1结构体的认知(课件)-《 C语言程序设计》同步教学(电子工业出版社)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。