欢迎来到天天文库
浏览记录
ID:39812242
大小:1.32 MB
页数:36页
时间:2019-07-11
《结构体、共用体和枚举类型》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第7章用户自定义数据类型教学目标理解结构体引入的原因,掌握结构体类型、结构体变量的定义方法,熟悉结构体变量的初始化和引用;熟悉结构体数组定义、初始化及使用;熟悉共用体类型变量的定义、变量的引用方式,了解其数据特点;熟悉枚举类型的定义和基本使用方法;了解typedef的功能、最基本用法。重点:结构体类型和结构体变量的定义,结构体变量的初始化和引用,结构体数组定义、初始化及使用,共用体类型、枚举类型定义和变量的使用;难点:结构体、共用体、枚举三者的异同点,类型定义与变量定义的差别,变量的使用及有关说明,枚举类型与整型的比较。第7章用户自定义
2、数据类型7.1结构体7.2共用体7.3枚举类型7.4typedef的使用数据类型基本类型整型字符型浮点型派生类型指针类型(*)数组类型([])结构体类型(struct)共用体类型(union)类类型空类型(void)枚举类型(enum)C++的数据类型概念:结构体(structure)是一种派生数据类型,由用户自己建立,由若干个类型不同数据项组成,是一种组合型数据结构。现假设有如下资料:学号姓名性别年龄成绩家庭地址101001张三m2089.5北京路123号101002李四f1994.3体育东路1号101003王五m2178.0体育西路
3、5号intchar[20]charchar[30]intfloat行:包含几个数据项,反映的是一个学生的整体信息。记录问题:用什么数据类型来存储由多个类型可能不同的数据项组成的“行”信息?7.1.1为什么需要用结构体类型7.1.1为什么需要用结构体类型C++语言提供了一些系统已定义好的数据类型,如int、float、char等供用户使用。我们可以通过这些类型来定义一些变量来存储学生的信息:intnum;//定义学号charname[20];//定义姓名charsex;//定义性别intage;//定义年龄floatscore;//定义成
4、绩charaddr[30];//家庭地址包含int、char、float三种不同数据类型,还定义了两个数组。但这些变量之间无内在联系。7structstudent{intnum;//数据项学号charname[20];//数据项姓名charsex;//数据项性别intage;//数据项年龄floatscore;//数据项成绩charaddr[30];//数据项地址};7.1.1为什么需要用结构体类型如果这样定义一个结构体类型,数据项间就建立联系了。7.1.1为什么需要用结构体类型struct结构体类型名{数据类型成员1;数据类型成员2;
5、……数据类型成员n;};结构体标识,不能省略定义结构体类型的一般形式地位与int、char、float、double等类型名相同,通常首字母大写。已有类型或已定义的“结构体”,每一个数据项可以是不同类型数据项名称,又称“域”structDate{intyear;intmonth;intday;};例:结构体类型名DatestructStudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];};例:结构体类型名Stduent7.1.2结构体类型类型变量的定义方法及
6、初始化1.定义结构体类型变量的方法1)先声明结构体类型,再定义该类型变量2)在定义类型的同时声明变量例如:structStudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}student1,student2;structstudent{intnum;//数据项学号charname[20];//数据项姓名charsex;//数据项性别intage;//数据项年龄floatscore;//数据项成绩charaddr[30];//数据项地址};studentst
7、udent1,student2;结构体类型名结构体变量名结构体类型名结构体变量名3)不指定结构体类型名,直接定义结构体类型变量struct{成员表列}变量名表列;说明:(1)结构体类型与结构体变量是不同的概念。只能对变量赋值、存取或运算,而不能对一个类型赋值、存取或运算。在编译时,对类型是不分配空间的,只对变量分配空间(2)对结构体变量中的成员(即“域”),可以单独使用,它的作用与地位相当于普通变量。(3)结构体成员可以属于另一个结构体类型。structDate{intmonth;intday;intyear;};structStude
8、nt{intnum;charname[20];charsex;intage;structDatebirthday;charaddr[30];};例:结构体变量的初始化:即在定义结构体变量时给它的各成员赋初值
此文档下载收益归作者所有