欢迎来到天天文库
浏览记录
ID:56966361
大小:1.69 MB
页数:49页
时间:2020-07-22
《轻松学C语言之结构体与共用体课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章结构体与共用体除了前面提到过的基本数据类型,C语言还支持一些复杂的、自定义的数据类型。利用这些数据类型,程序员可以处理复杂的数据。本章主要介绍三种自定义的数据类型:结构体、共用体以及枚举类型。8.1结构体的概念及结构体类型的定义8.1.1为什么使用结构体结构体类型是不同类型数据的集合,它是用户自己定义的数据类型。例如,现在要记录一个班级20名学生的信息,包含学号、性别、名字等数据。单独定义数组记录则显得很麻烦。C提供了结构体就可以很容易地解决这个问题,如图8.1所示。8.1.1为什么使用结构体8.1.1为什么使用结构体8.1.2定义结构体类型结构体类型不同于基本数
2、据类型。基本数据类型已经在C语言中被定义好了,用户可以直接使用。而结构体类型事先并不存在,需要用户根据自己的情况进行定义。结构体的定义格式如图8.3所示。8.1.2定义结构体类型8.2结构体变量结构体类型的定义只是定义了一个特定的复合数据类型,描述了这一类型的公共的数据成员变量。如果在C程序中使用结构体类型,我们必须还要使用到结构体变量。本节主要讲解结构体变量。8.2.1结构体变量的定义结构体变量的定义一般有3种定义的形式,如图8.5所示。8.2.2结构体变量的引用C程序中,结构体变量的引用其实就是对结构体变量的数据成员的引用。结构体变量中的数据成员引用形式以及示例如图
3、8.6所示。8.2.3结构体变量的初始化同其他数据类型一样,对结构体变量也可以在定义时指定初始值。结构体变量初始化是根据结构体变量定义的三种方式对应进行初始化的,形式如图8.8所示。8.2.3结构体变量的初始化8.2.3结构体变量的初始化8.2.4结构体变量作为函数参数结构体类型的变量不仅可以作为函数实参,也可以作为函数形参。将结构体变量作函数参数,这种方式实际上是值传递。本节主要通过一个实例讲解结构体变量作为函数参数。8.3结构体数组在实际应用中,经常用结构体数组来表示具有相同数据结构的一个群体。比如说要建立10个学生的数据,每个学生的信息是由一个结构体变量表示。如果
4、使用定义10个结构体变量然后再依次赋值,那么会很麻烦,C提供了结构体数组如图8.11所示。8.3结构体数组8.3.1结构体数组的定义结构体数组定义和结构体变量定义形式类似,它包含两种定义方式如图8.12所示。8.3.2结构体数组的引用以及初始化结构体数组定义以后,通过下标即可引用相应的结构体数组元素。结构体数组的引用形式如图8.13所示。8.3.2结构体数组的引用以及初始化8.3.3结构体数组作为函数的参数在前面的章节中讲解过,数组名可以代表数组的首地址。因此结构体数组可以作为参数传递给函数,即将结构体数组的首地址传递给被调函数。本节主要以一个示例讲解结构体数组作为函数
5、的参数。8.4结构体指针在前面的章节中讲解过指针的概念,指针是用来指向变量地址的。而结构指针是指向已定义的结构体变量,从而对地址中存储的值操作。在本节中将讲解结构指针的概念及应用。8.4.1指向结构体变量的指针指向结构体变量的指针也称为结构体指针,它的值是结构体变量的起始地址。指向结构体指针变量的指针的定义的形式如图8.17所示。8.4.1指向结构体变量的指针8.4.2指向结构体数组的指针当一个结构体指针变量指向一个结构体数组时,这时指针变量的值就是给该结构体数组的首地址;当一个结构体指针变量指向结构体数组的某一个元素时,这时结构体指针变量的值就是结构体数组元素的地址。
6、本节主要讲解指向结构体数组的指针,如图8.20所示。8.4.2指向结构体数组的指针8.4.3指向结构体的指针作函数参数将一个结构体变量的值传递给另一个函数,有3种方式,如图8.23所示。8.5位域“位域”是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。这样就可以把几个不同的对象按一个字节的二进制位来表示。本节主要讲解位域的基本操作。8.5.1定义位域结构使用位域这种数据结构,可以将一个字节的二进制位划分为不同的区域,为每个区域设置一个名称。在程序中可以独立访问。这样就可以把多个不同的数据用一个字节的二进制位
7、域来表示。定义位域的形式如图8.25所示。8.5.2位域的声明位域的声明有三种形式,如图8.26所示。8.5.3位域的使用8.6共用体结构体解决了逻辑上相关但数据类型不同的一组分量的集合。C语言还提供了另外一种由若干个不同数据类型的数据项组成的,但共享同一存储空间的结构——共用体,也称为“共同体”。本节主要讲解共用体的基本概念以及共用体变量的使用。8.6.1共用体的概念共用体的概念如图8.30所示。8.6.1共用体的概念8.6.1共用体的概念8.6.2共用体变量的定义及引用共用体变量的定义和结构体变量的定义类似,也有3种形式,如图8.33
此文档下载收益归作者所有