结构类型、枚举类型、类型别名.ppt
6.7 6.7 结构类型、枚举类型、类型别结构类型、枚举类型、类型别名名1.1.结构类型结构类型1)数组:有限个相同类型的元素的有序的集合;若数据项都属相同数据类型时,可用数组解决;运动员成绩排序。设每位运动员资料用一个一维数组的2个元素表示:例例 2)当数据项不属同一数据类型时,则无法使用数组。如一个运动员基本资料构成如下:号码longnum;姓名charname20;成绩floatscore;那就不能采用上面的处理方式了。3)结构类型:属复合数据类型。用户可以利用已定义的数据类型的数据项和系统规定的规则定义出自己所需的数据类型-结构类型。在一个结构类型中,构成它的各个成员在任一时刻均同时存在。结构类型定义一般形式:struct结构类型名/只有数据成员成员1说明;成员2说明;.成员n说明;一个学生基本资料的结构类型student可定义如下:structstudentlongnum;/学号charname20;/姓名intsex;/性别intage;/年龄chardepart30;/主修系charaddress30;/住址floatscore50;/成绩;(推广:结构类型实际上是类的退化形式-只含有public的数据成员)例例 4)结构变量定义:CC+:structstudents1,s2,st100;C+:students1,s2,st100;5)结构成员引用(类似对象成员引用):students1,s2,st100,*p,*q;p=&s1;/s1.num与p-num等价q=&st5;/st5.age与q-age等价s1.num=023511001;st5.age=17;p-num=023511001;q-age=17;2.2.枚举类型枚举类型(穷举法穷举法)1)适合情况:不适宜直接用数字来表示的场合:颜色,星期几,性别.2)枚举类型定义形式:enum类型名常量1,常量2,常量n;3)枚举类型变量的定义、使用我们可以用新类型名字声明变量,如BOOLEANis_clsed;/声明一个布尔类型变量变量is_closed的取值范围可以是FALSE和TRUE,可以用这些枚举常量为is_closed初始化或作比较。C+语言的每一个枚举常量代表一个整数类型的值,第一个枚举常量的值为0,第二个为1,据此类推。所以我们在屏幕上输出的FALSE与TRUE的值分别为0和1。我们也可显式地改变这些枚举常量的值,如enumMETA_COLOR/基本颜色类型(RGB)RED=4,/红色GREEN=2,/绿色BLUE1/蓝色如果在声明时为某一个枚举常量赋值,那么其后没有赋值的枚举常量的值将是上一个常量的值加一。如enumMETA_COLOR/基本颜色类型(RGB)RED,/红色GREEN=6,/绿色BLUE5/蓝色CYAN/青色;这时,RED的值为0、GREEN的值为6、BLUE的值为5、CYAN的值为6。3.3.类型别名类型别名(简单介绍简单介绍)1)含义:给一个已知类型起一个别名(但并非定义一个新类型)2)使用形式:typedef原类型名(旧名字)新类型名(新名字);typedefintINTEGER;/INTEGER是int的别名以后用INTEGER来定义变量和用int定义变量等价如INTEGERa,b,c;/等价于inta,b,c;例例 typedefchar*string;则:stringp;/等价于char*p;3)指向函数的指针的特殊形式typedefvoid(*HANDLER)(char*);使用:HANDLERmyhandler;相当于:void(*myhandler)(char*);上一节返回下一节例例