您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 21天学通C++-第九章-构造数据类型
联系方式:北京源智天下科技有限公司第九讲:构造数据类型杨章伟e-mail:jtclass@163.com1-2北京源智天下科技有限公司联系方式:课程内容安排•结构体•共用体•枚举•类型重定义typedef•位域•综合练习•思考和习题1-3北京源智天下科技有限公司联系方式:结构体•在C++中,结构体是一种可以由程序员根据实际情况来自己构造的一种新的数据类型,结构体类型的数据由若干称为“成员”的数据组成,每一个成员既可以是一个基本数据类型的数据,也可以是另一个构造类型的数据。1-4北京源智天下科技有限公司联系方式:结构体•例如,针对上面描述一个同学所需的各种信息,可以定义一个结构体,其包括学号、姓名、性别、年龄、成绩、班级等信息,如图9-1所示。1-5北京源智天下科技有限公司联系方式:结构体类型说明•作为一种自定义的数据类型,在使用结构体之前,必须完成其定义。与定义基本数据类型一样,定义结构体也需要一个关键字,定义结构体使用的是struct关键字。一般来说,说明结构体类型的语法格式如下:•struct结构体标识符•{•成员变量列表;•…•};1-6北京源智天下科技有限公司联系方式:结构体定义示例•例如,为了描述上一小节中包含学号、姓名、性别、年龄等信息的学生,可以定义如下的自定义数据类型structStudent。•structStudent•{•intCode;//学号•charName[20];//姓名•charSex;//性别•intAge;//年龄•};1-7北京源智天下科技有限公司联系方式:引用结构体成员变量•在实际使用中,需要对其成员变量进行引用。一般来说,如果已定义了一个结构体变量和一个指向该结构体的指针变量,则可用以下三种形式来引用结构体变量中的成员:•结构体变量名.成员名•指针变量名成员名•(*指针变量名).成员名•其中,结构体变量名也可以是已定义的结构体数组的数组元素,指针变量名为定义的同一结构类型的指针变量,并使该指针指向同类型的变量。1-8北京源智天下科技有限公司联系方式:共用体•使几个不同的变量共占同一段内存的结构,称为“共用体”类型的结构。在有些参考资料上,共用体类型也称为联合类型(Union)。•共用体类型的说明与结构体类型说明方式完全相同,不同的是,结构体变量中的成员各自占有自己的存储空间,而共用体变量中的所有成员占有同一个存储空间。因此,说明一个共用体的语法格式如下所示:•union共用体标识符•{•成员变量列表;•……•};1-9北京源智天下科技有限公司联系方式:引用共用体成员变量•与结构体成员变量的引用类似,定义了共用体变量和指向该共用体的指针变量后,共用体变量中每个成员的引用也可以使用以下三种形式之一:•共用体变量名.成员名•指针变量名--成员名•(*指针变量名).成员名1-10北京源智天下科技有限公司联系方式:枚举•在日常生活中,会遇到很多集合类问题,其所描述的状态为有限几个,例如比赛的结果只有输和赢两种状态,一周有7天,共7个状态。在计算机中表述这些信息,需要定义一组整型常量,但是这些常量虽然在表达了同一类型的信息,但是在语法上是彼此孤立的个体,不是一个完整的逻辑整体。因此,C++中引入了枚举类型来将这些常量融合成一个整体。•一般来说,枚举类型的定义的语法描述如下:•enum枚举标识符{常量列表};1-11北京源智天下科技有限公司联系方式:为了解决用户自定义数据类型名称的需求,C++中引入类型重定义语句typedef,可以为数据类型定义新的类型名称,从而丰富数据类型所包含的属性信息。在C++中,类型重定义typedef的一般语法描述如下:typedef类型名称类型标识符;1-12北京源智天下科技有限公司联系方式:位域有些信息在存储时,并不需要占用一个完整的字节,而只需占几个或一个二进制位。例如在存放一个标志时,只有0和1两种状态,用一位二进位即可。为了节省存储空间,并使处理简便,C++又提供了一种数据结构,称为“位域”。1-13北京源智天下科技有限公司联系方式:定义位域变量所谓位域是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。这样就可以把几个不同的对象用一个字节的二进制位域来表示。位域的定义和位域变量的说明与结构定义类似,其形式如下:struct位域结构名{位域列表};其中,位域列表的形式为:类型说明符位域名:位域长度1-14北京源智天下科技有限公司联系方式:综合练习•根据用户输入的学生数目,给出用户输入学生学号、姓名、成绩等输入提示,用户输入完成后给出输入的各项成绩和平均分。1-15北京源智天下科技有限公司联系方式:思考和习题•在C++中,除了基本数据类型之外,构造类型主要有哪几种?•在完成一个结构体定义之后,就可以像定义基本数据类型变量一样,定义结构体类型的变量和数组了。一般来说,结构体类型变量的定义可以通过如4种方式完成,分别是哪4种?•在实际程序中,如何引用结构体变量?•结构体变量作为函数参数时,如何进行参数传递?•共用体在实际程序中如何使用?•枚举类型在实际程序中如何使用?
本文标题:21天学通C++-第九章-构造数据类型
链接地址:https://www.777doc.com/doc-4413212 .html