《语言结构体ppt课件》由会员分享,可在线阅读,更多相关《语言结构体ppt课件(25页珍藏版)》请在金锄头文库上搜索。
1、火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去0101020203039.1 结构体结构体9.2 共用体共用体9.3 枚举类型枚举类型第九章第九章 结构体、共用体与枚举结构体、共用体与枚举04049.4 用户定义类型用户定义类型050506069.5 知识知识点强化与应用点强化与应用9.6 本章本章小结小结火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去【学习要点】1.结构体2.共用体与枚举类型3.自定义数据类型本章主要介绍结构体、共用体与枚举类型的定义、引用及应用。希望大
2、家能通过学习建立起记录数据的存储及处理的思想。火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去在学生信息管理系统中,需要一种类型变量正好可以将定义的单个存放学生的信息封装起来,并用来存放8个同学的信息,完成录入后,将信息输出。【导入案例:利用结构体构建起记录数据的存储及处理的思想】火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去学生的个人信息包括学号、姓名、性别、各门课程成绩等,显然这些数据项的类型是不一样的。通过前几章的学习,可以知道数组能够存储多个数据项,但只能存储一样类
3、型的数据。那么,能否有一种数据类型可以将一组类型不同的相关数据封装在一个变量中呢?此问题正是本章要解决的问题。分析火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去在学生信息管理系统中,需要一种类型变量正好可以将定义的单个存放学生的信息封装起来,并用来存放8个同学的信息,完成录入后,将信息输出。【解决方案】先定义单个存放学生信息的结构体类型,然后定义结构体数组存放8个同学的信息。分析火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去C C语言提供了一种叫作结构体(语言提供了一种叫
4、作结构体(StructureStructure)的数据类)的数据类型,能够以一种方便而整齐的方式把一组类型不同的相型,能够以一种方便而整齐的方式把一组类型不同的相关数据封装在一个变量里,这样就可以清晰地表达数据关数据封装在一个变量里,这样就可以清晰地表达数据之间的关系,提高程序的可读性。之间的关系,提高程序的可读性。9.1 结构体火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去9.1 结构体(续)C语言中用关键字struct定义结构体类型,一般形式为:struct 结构体类型名 类型1 成员名1; 类型2 成员名2; 类型n 成员名n
5、;火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去!注意:新结构体类型的名称为“struct 结构体类型名”;一定不要忘记语句的结束标志分号“;”。火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去9.1.2 结构体变量的定义C语言规定了以下三种定义结构体变量的方法:1. 先定义结构体类型,再定义结构体变量例如,下面语句就定义了两个struct student结构体类型的变量stud1和stud2:struct student stud1,stud2;火灾袭来时要迅速疏散逃生,
6、不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去2. 在定义结构体类型的同时定义结构体变量其一般形式为:struct 结构体类型名 类型1 成员名1; 类型n 成员名n; 变量名列表;火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去3. 直接定义结构体变量不出现结构体类型名,在定义结构体类型的同时定义结构体变量,其一般形式为:struct类型1 成员名1; 变量名列表;火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去9.1.3 结构体变量的初
7、始化和C语言中其它变量一样,在定义结构体变量时可以进行初始化操作,一般形式为(中的内容表示可省略):struct 结构体类型名 类型1 成员名1; 结构体变量=初始数据;火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去9.1.4 结构体变量的引用C语言允许引用结构体变量的成员完成某种操作。其一般形式为:结构体变量名.成员名火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去9.1.5 结构体数组结构体数组与以前介绍过的数据值型数组不同之处在于每个数组元素都是一个结构体类型的数据,
8、它们分别包括各个成员(分量)项。例如: struct student char name20; stud5;定义了一个结构体数组stud5,共有5个元素,stud0stud4。每个数组元素都具有struct student的结构形式。对结构数组可以作初始化赋值。火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去定义了一个结构体数组stud5,共有5个元素,stud0stud4。每个数组元素都具有struct student的结构形式。对结构数组可以作初始化赋值。火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服
9、或裹上湿毛毯、湿被褥勇敢地冲出去共用体是由用户定义的数据类型。有时需要使几种共用体是由用户定义的数据类型。有时需要使几种不同类型的变量存放到同一段内存单元中,也就是使不同类型的变量存放到同一段内存单元中,也就是使用覆盖技术,几个变量互相覆盖。这种使几个不同的用覆盖技术,几个变量互相覆盖。这种使几个不同的变量共同占用一段内存单元的结构,称为变量共同占用一段内存单元的结构,称为“共用体共用体”类型的结构。类型的结构。9.2 共用体火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去9.2 .1 共用体类型的定义共用体类型定义的一般形式:uni
10、on 共用体名类型1 成员名1; ;火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去9.2.2 共用体变量的说明共用体与结构体一样,必须先定义类型。共用体变量的定义方式与结构体变量类似,有三种定义方式:(1)先定义共用体类型,再定义共用体变量(2)在定义共用体类型的同时定义共用体变量(3)直接定义共用体变量火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去9.2.3 共用体变量的引用共用体变量不能直接使用,和结构体变量一样只能使用里面的某个成员,其成员同样通过点运算描述。形式为
11、:共用体变量名.成员名火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去枚举类型是用户自定义类型,定义时列举出此类数枚举类型是用户自定义类型,定义时列举出此类数据所有可能的取值,定义后就可以用它定义枚举型变量据所有可能的取值,定义后就可以用它定义枚举型变量了,枚举型变量的取值仅限于所定义枚举型时列举出的了,枚举型变量的取值仅限于所定义枚举型时列举出的值。值。9.3 枚举类型火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去9.3.1 枚举类型的定义C语言中用关键字enum定义枚举
12、型。定义枚举型的一般形式为:enum 枚举类型名枚举常量列表;火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去9.3.2 枚举变量的说明和引用若有:enum color BLUE,RED,GREEN ;定义枚举类型变量a,b,c如下:enum color a,b,c;火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去C语言中用关键字typedef可以为数据类型定义一个别名,这个称为自定义数据类型。9.4 用户定义类型如:typedef int INTEGER;就是给大家熟悉的i
13、nt数据类型取了一个别名INTEGER,两者可以互相交换使用。火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去9.5 知识点强化与应用例1:试利用结构体类型编制一程序,计算3个学生的平均成绩并统计不及格人数。(学生信息包括:学号,姓名,数学分数)分析:分析:1. 1.定义结构体定义结构体struct studentstruct student用来描述学生信息。用来描述学生信息。2.定义一个结构体数组struct student s3,并完成相应信息的输入;3.使用循环结构求成绩总分及选择结构统计不及格人数;4.求出平均分并将相应结果输
14、出。火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去9.6 小结1 1 1 1结构体、共用体、枚举结构体、共用体、枚举结构体、共用体、枚举结构体、共用体、枚举(1 1 1 1)结构体、共用体、结构体、共用体、结构体、共用体、结构体、共用体、枚举类型的定义。枚举类型的定义。枚举类型的定义。枚举类型的定义。(2 2 2 2)结构体、共用体、枚举类型的结构体、共用体、枚举类型的结构体、共用体、枚举类型的结构体、共用体、枚举类型的定义变量的定义。定义变量的定义。定义变量的定义。定义变量的定义。(3 3 3 3)结构体指针的定义及使用。结构体指针的定义及使用。结构体指针的定义及使用。结构体指针的定义及使用。(4 4 4 4)结构体数组的定义及使用结构体数组的定义及使用结构体数组的定义及使用结构体数组的定义及使用2 2 2 2自定义数据类型自定义数据类型自定义数据类型自定义数据类型 自定义数据类型的定义与使用。自定义数据类型的定义与使用。自定义数据类型的定义与使用。自定义数据类型的定义与使用。