* 枚举类型 如果一个变量只有几种可能的值,可以定义为枚举类型。 枚举类型就是将变量的值一一列举出来,变量的值仅限于列举出来的值的范围内。 * enum weekday {sun, mon, tue, wed, thu, fri, sat}; C定义方式:enum weekday workday, weekend ; workday 和 weekend 值只能是sun 到 sat 其中之一。 enum {sun, mon, tue, wed, thu, fri, sat} workday,weekend ; 其中sun, mon,....,sat称为枚举元素或枚举常量,为用户定义的标识符,所代表的意义由用户决定,在程序中体现出来。 数据类型 可能取的值 变量 另一种定义变量的方法 C++定义方式:weekday workday, weekend ; * 1、枚举元素为常量,不可赋值运算。 sun=0; mon=1; 2、在定义枚举类型的同时,编译程序按顺序给每个枚举元素一个对应的序号,序号从0开始,后续元素依次加1。 enum weekday {sun, mon, tue, wed, thu, fri, sat}; 0 , 1, 2, 3, 4, 5, 6 3、可以在定义时人为指定枚举元素的序号值。 enum weekday {sun=9, mon=2, tue, wed, thu, fri, sat}; 9 , 2, 3, 4, 5, 6 , 7 4、只能给枚举变量赋枚举值,若赋序号值必须进行强制类型转换。 day=mon ; day=1; day=(weekday)1; * 5、枚举元素可以用来进行比较判断。 if (workday= = mon) if (workdaysun) 6、枚举值可以进行加减一个整数n的运算,得到其前后第n个元素的值。 workday=sun; workday=(week)(workday+2); 7、枚举值可以按整型输出其序号值。 workday=tue; coutworkday; 2 * void main(void) { enum team{ qiaut,cubs=4, pick, dodger=qiaut-2}; coutqiaut\tcubs\t; coutpick\tdodgerendl; } 输出:0 4 5 -2 * 例7.8 * 结构体类型的静态成员 当把结构体类型中的某一个成员的存储类型定义为静态时,表示在这种结构类型的所有变量中,编译程序为这个成员只分配一个存储空间,即这种结构体类型的所有变量共同使用这个成员的存储空间。 类型 结构体类型名::静态成员名; 其中类型要与在结构体中定义该成员的类型一致,结构体类型名指明静态成员属于哪一个结构体。 struct s{ static int id; int eng; }; int s::id=50; 这时,未定义结构体变量,但已将静态成员的空间安排好。 数据类型 结构体类型 若有定义:s s1,s2; 则变量s1,s2的id成员占用同一存储空间(静态区)。 * 在结构体中说明的静态成员属于引用性说明,必须在文件作用域中的某一个地方对静态的成员进行定义性说明,且仅能说明一次。 int s::id; 说明id的初值为0(静态变量的缺省初值均为0) * 第七章 结构体、共同体和枚举类型 * 定义: 将不同种类型的数据有序地组合在一起,构造出一个新的数据类型,这种形式称为结构体。 结构体是多种类型组合的数据类型。 * struct 结构体名 { 成员列表 }; struct student { int num; char name[20]; char sex; char addr[30]; }; 结构体名 关键字 不同数据类型组成的成员 分号不能少。 * student是一个类型名,和系统提供的标准类型(如int、char、float等)一样,可以用来定义变量。只不过结构体类型需要事先用户自己定义。 声明结构体类型的位置一般在文件的开头,在所有函数之前,以便本文件中的所有函数都能利用它来定义。但并不是语法要求,也可以在函数中或
原创力文档

文档评论(0)