《C语言程序设计》课程教学资源(PPT课件讲稿)第八章 结构体、共用体和枚举类型

第8章结构体、共用体和枚举类型 本章要点 81复杂数据类型概述 82结构体类型和结构体变量 8.3结构体变量的使用和初始化 84结构体数据的输入腧出y 8.5结构体变量作函数参数 86带有位段成员的结构体 8.7链表 8.8共用体类型 8.9枚举类型 8.10实例演示:“极限俱乐部会员信息系统”程序
第8章 结构体、共用体和枚举类型 本章要点 8.1 复杂数据类型概述 8.2 结构体类型和结构体变量 8.3 结构体变量的使用和初始化 8.4 结构体数据的输入/输出 8.5 结构体变量作函数参数 8.6 带有位段成员的结构体 8.7 链表 8.8 共用体类型 8.9 枚举类型 8.10 实例演示:“极限俱乐部会员信息系统”程序

本章要点 ◆结构体、共用体和枚举类型三种构造类型的定义形 式、成员类型 令◆动态数据结构——链表
❖ 本章要点 ❖ ◆ 结构体、共用体和枚举类型三种构造类型的定义形 式、成员类型 ❖ ◆ 动态数据结构——链表

8.1复杂数据类型概述 在第2章介绍过数据类型有基本数据类型和构造类型之分, 前几章的程序设计都是围绕基本数据类型(整型、实型和字 符型)以及由相同数据类型的集合——数组而展开的。 冷本章讨论构造类型——结构体类型和共用体(联合体)类型。 构造类型的定义比较自由,用户可以定义出形式多样的数据 类型。它们有一个共同特点是可以由不同数据类型组成,并 且一旦定义以后,就可定义相应类型的变量和数组
8.1复杂数据类型概述 ❖ 在第2章介绍过数据类型有基本数据类型和构造类型之分, 前几章的程序设计都是围绕基本数据类型(整型、实型和字 符型)以及由相同数据类型的集合——数组而展开的。 ❖ 本章讨论构造类型——结构体类型和共用体(联合体)类型。 构造类型的定义比较自由,用户可以定义出形式多样的数据 类型。它们有一个共同特点是可以由不同数据类型组成,并 且一旦定义以后,就可定义相应类型的变量和数组

8.2结构体类型和结构体变量 8.2.1结构体类型的定义 ☆结构型是一种较为复杂但却非常灵活的构造型数据类型, 是数目固定、类型不同的若干有序变量的集合。一个结构 体类型由若于个称为成员(或域)的成分组成。其中,结构 体类型的成员允许为不同的数据类型,在C程序中使用保 留字 struct定义结构体类型。结构体类型定义格式为 struct结构体类型名 类型名1成员名1; 类型名2成员名2; 类型名n成员名n
8.2 结构体类型和结构体变量 ❖ 8.2.1结构体类型的定义 ❖ 结构型是一种较为复杂但却非常灵活的构造型数据类型, 是数目固定、类型不同的若干有序变量的集合。一个结构 体类型由若干个称为成员(或域)的成分组成。其中,结构 体类型的成员允许为不同的数据类型,在C程序中使用保 留字struct定义结构体类型。结构体类型定义格式为: ❖ struct结构体类型名 ❖ { ❖ 类型名1成员名1; ❖ 类型名2成员名2; ❖ …… ❖ 类型名n成员名n; ❖ };

说明: 冷(1)结构体类型名的命名应该符合C语言中标识符的命名规 则 冷(2)结构体类型的成员表用花括弧括起来,结构体类型定义 完成时使用分号结束 冷(3)结构体类型各成员的定义方法与变量相同,可以是C语 言提供的任何数据类型,成员名的命名规则也与变量相同, 各成员定义之间用分号分隔开
说明: ❖ (1)结构体类型名的命名应该符合C语言中标识符的命名规 则。 ❖ (2)结构体类型的成员表用花括弧括起来,结构体类型定义 完成时使用分号结束。 ❖ (3)结构体类型各成员的定义方法与变量相同,可以是C语 言提供的任何数据类型,成员名的命名规则也与变量相同, 各成员定义之间用分号分隔开

在结构体类型定义中要注意以下几点: (1)结构体类型定义中不允许对结构体本身递归定义 (2)结构体类型定义中可以包含另外的结构体,即结构体 是可以嵌套的 令(3)结构体类型是设计者根据不同对象来定乂的,所以结 构体类型并非只有一种,而是根据所描述的对象的不同有很 多种,各种结构体类型都可以有自己的结构体名,可以包含 不同数目的成员 (4)定义了一个结构体类型以后,并不意味着已分配一段 内存单元来存放这些结构体成员,此时只是定义了类型而不 整型(nt)或实型(oa)一样,数据类型不占内存E。,就像 分配内存单元。只定义数据类型系统不分配内存单元 (5)结构体中的成员名可以和程序中其他地方的变量名相 同,两者互不干扰。如程序中定义 个整型变量pay和 struct Worker中的成员pay代表不同的对象,互不千扰 (6)同名结构体类型不可以重复定义
在结构体类型定义中要注意以下几点: ❖ (1)结构体类型定义中不允许对结构体本身递归定义 ❖ (2)结构体类型定义中可以包含另外的结构体,即结构体 是可以嵌套的。 ❖ (3)结构体类型是设计者根据不同对象来定义的,所以结 构体类型并非只有一种,而是根据所描述的对象的不同有很 多种,各种结构体类型都可以有自己的结构体名,可以包含 不同数目的成员。 ❖ (4)定义了一个结构体类型以后,并不意味着已分配一段 内存单元来存放这些结构体成员,此时只是定义了类型而不 分配内存单元。只定义数据类型系统不分配内存单元,就像 整型(int)或实型(float)一样,数据类型不占内存单元。 ❖ (5)结构体中的成员名可以和程序中其他地方的变量名相 同,两者互不干扰。如程序中定义了一个整型变量pay和 struct Worker中的成员pay代表不同的对象,互不干扰。 ❖ (6)同名结构体类型不可以重复定义

822结构体变量的定义 冷先定义结构体类型,再定义结构体类型的变量 在定义结构体类型的同时定义结构体类型的变量 直接定义结构体类型的变量
8.2.2 结构体变量的定义 ❖ 先定义结构体类型,再定义结构体类型的变量 ❖ 在定义结构体类型的同时定义结构体类型的变量 ❖ 直接定义结构体类型的变量

8.3结构体变量的使用和初始化 令结构体变量的使用一般可分为两种情况:一种是结构体成员 的使用;另一种是结构体变量整体的使用。 8.3.1结构体变量成员的引用 引用的一般形式为: 结构体变量名.成员名 “.”是成员运算符,它在所有运算符中优先级最高
8.3 结构体变量的使用和初始化 ❖ 结构体变量的使用一般可分为两种情况:一种是结构体成员 的使用;另一种是结构体变量整体的使用。 ❖ 8.3.1结构体变量成员的引用 ❖ 引用的一般形式为: ❖ 结构体变量名.成员名 ❖ “.”是成员运算符,它在所有运算符中优先级最高

例8-1】建立一个简单的学生信息表 令# nclude main i struct student i char name[20]: char sex Int age; float score; 3s printf("input name gets(stu name printf(input sex: stu sex=getchar printf("input age: ) scanf(%d", &stu age) printf("input score: scanf(%f", &stu score) printf("name: %s, sex: %C, age: %d, score %5.2f\n", stu name, stu. sex, stu age, stu score): 1
【例8-1】建立一个简单的学生信息表。 ❖ #include main() { struct student { char name[20]; char sex; int age; float score; }stu; printf("input name:"); gets(stu.name); printf("input sex:"); stu.sex=getchar(); printf("input age:"); scanf("%d",&stu.age); printf("input score:"); scanf("%f",&stu.score); printf("name:%s,sex:%c,age:%d,score: %5.2f\n",stu.name,stu.sex,stu.age,stu.score);}

运行结果为 c:"E:\C\test\ Debug test.exe input name: Li Lin nput sex: M input age: 20 input score: 90 name: Li Lin, sex: M, age: 20, score: 90.00 Press any key to continue
运行结果为:
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第七章 函数.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第六章 指针.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第五章 数组.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第四章 C语言程序结构.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第三章 运算符和表达式.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第二章 数据类型、常量和变量.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第一章 C语言概述.ppt
- 《C语言程序设计》课程教学资源:第十一章 实例演示.ppt
- 《C语言程序设计》课程教学资源:第十章 文件.ppt
- 《C语言程序设计》课程教学资源:绪论.ppt
- 《计算机文化基础》课程PPT教学课件(电子教案)第八章 计算机网络基础与 nternet的使用.ppt
- 《计算机文化基础》课程PPT教学课件(电子教案)第七章 FrontPage XP网页制作.ppt
- 《计算机文化基础》课程PPT教学课件(电子教案)第六章 Power Point XP演示文 稿制作.ppt
- 《计算机文化基础》课程PPT教学课件(电子教案)第五章 Exce XP电子表格处理.ppt
- 《计算机文化基础》课程PPT教学课件(电子教案)第四章 Word XP文字处理.ppt
- 《计算机文化基础》课程PPT教学课件(电子教案)第三章 windows xp操作系统.ppt
- 《计算机文化基础》课程PPT教学课件(电子教案)第二章 指法及汉字录入.ppt
- 《计算机文化基础》课程PPT教学课件(电子教案)第一章 电子计算机的基础知识.ppt
- 《计算机文化基础》课程教学资源(教学大纲).doc
- 黔南电大:《计算机文化基础》电子课件.ppt
- 《C语言程序设计》课程教学资源(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
- 《数据库原理及应用》课程教学电子教案(PPT课件)第四章 数据库.ppt
- 《数据库原理及应用》课程教学电子教案(PPT课件)第五章 查询和视图.ppt
- 《数据库原理及应用》课程教学电子教案(PPT课件)第六章 面向过程程序设计.ppt
- 《数据库原理及应用》课程教学电子教案(PPT课件)第七章 面向对象程序设计.ppt