预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共51页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第5章自定义数据类型结构体类型 共用体类型 枚举类型 类型定义35.1.1结构体的概念struct结构体名 { 数据类型成员名1; 数据类型成员名2; : 数据类型成员名n; };structstudent { charid[7];//长度为7的字符数组id,表示学号 charname[10];//长度为10的字符数组name,表示学号 floatscore;//单精度实数类型score,表示入学分数 }; //注意分号不要省略(1)结构体类型是用户自行构造的。 (2)它由若干不同的基本数据类型的数据构成。 (3)它属于C++语言的一种数据类型,与整型、实型相当。因此,定义它时不分配空间,只有用它定义变量时才分配空间。5.2结构体变量的定义structstudent { charid[7]; charname[10]; floatscore; }; structstudentst1; studentst2;二、在声明类型的同时定义变量 struct结构体名 { 成员说明列表; }变量名表列;三、直接定义结构体类型变量(1)先定义一个结构体类型,然后定义该类型的变量。 (2)结构体变量的存储空间是各成员所占内存空间的总和。 (3)成员也可以是一个结构体变量,即结构体嵌套定义5.3结构体变量的引用和初始化5.3结构体变量的引用和初始化3.属于同一结构体类型的各个成员之间可以相互赋值。 stu2=stu1; structnode { floatx,y; }p,u,*pt;structnode {floatx,y; }p,u,*pt;①结构体变量.成员名。如:stu.sex ②(*p).成员名。如:(*p).sex ③p->成员名。如:p->sex。结构体变量初始化的方式和数组类似,也是在定义后面用花括号括起来【例】结构体变量的引用与初始化示例 一个结构体变量中可以存放一组数据(如一个学生的学号、姓名、成绩等数据)。如果有10个学生的数据需要参加运算,显然应该用数组,这就是结构体数组。 结构体数组与以前介绍过的数值型数组的不同之处在于:每个数组元素都是一个结构体类型的数据,它们都分别包括各个成员项。structstudent//声明结构体类型 { intnum; charname[20]; charsex; intage; floatscore; charaddr[30]; }; studentstu[3];//定义student类型的数组stu数组各元素在内存中连续存放structstudent {intnum; charname[20]; charsex; intage; floatscore; charaddr[30]; }stu[3]={{10101,"LiLin",'M',18,87.5,"103BeijingRoad"}, {10102,"ZhangFun",'M',19,99,"130ShanghaiRoad"}, {10104,"WangMin",'F',20,78.5,"1010,ZhongshanRoad"} };二、内存动态管理运算符二、内存动态管理运算符例如: float*pf=newfloat(55.8); int*pa=newint[20]; intm; int*pi=&m; deletepf;//释放pf所指的动态内存空间 deletepi;//错误,delete只释放new分配的 delete[]pa;//释放pa所指的数组内存空间结构体类型解决了如何描述一个逻辑上相关,但数据类型不同的一组分量的集合。 在需要节省内存储空间时,c语言还提供了一种由若干个不同类型的数据项组成,但共享同一存储空间的构造类型。5.2.1共用体类型与变量的定义5.2.1共用体类型与变量的定义共用体变量定义的三种形式为:共用体变量定义的三种形式为:共用体变量定义的三种形式为:共用体变量所占的内存空间uniondata { inti; charch; floatf; }a,*px; px=&a;注意:【例】写出下列程序的执行结果5.3枚举类型5.3枚举类型5.3枚举类型5.3枚举类型5.3枚举类型枚举类型应用说明: 整数值不能直接赋给枚举变量,如需要将整数赋值给枚举变量,应进行强制类型转换。 在直接输出某个枚举变量的值时,所显示的是枚举符的整型值而不是枚举类型的枚举符,若要输出枚举符则需要编程实现。【例】一个描述三种颜色的枚举类型实例 #include<iostream.h> main() {enumcolors{Red,White,Black}; colorsc1,c2,c; c1=White; c2=(colors)2; cout<<c1<<""<<c2<<endl; for(c=R