文档详情

C语言大学教程 第十章 C结构体.ppt

发布:2017-07-18约字共133页下载文档
文本预览下载声明
7.3 枚举类型 枚举成员之间用逗号隔开,方括号中的整型常数是枚举成员的初值。 如果不给枚举成员赋初值,即省掉了标识符后的=整型常数时,则编译器为每一个枚举成员给一个不同的整型值,第一个成员为0,第二个为1,等等。当枚举类型中的某个成员赋值后,其后的成员则按依次加1的规则确定其值。 枚举类型 例如: enum weekday {sun,mon,tue,wed,thu,fri,sat}; weekday day,nextday; if(day==sat) nextday=sun; 例.枚举量与枚举量的值 enum day {Sun,Mon,Tue,Wed,Thu,Fri,Sat}; Sun为0 Mon为1 ... Sat为6 enum day{Sun=5,Mon,Tue,Wed,Thu,Fri,Sat}; Sun, Mon, Tue, Wed, Thu, Fri, Sat 分别为: 5, 6, 7, 8, 9, 10, 11 enum day{Sun,Mon,Tue,Wed,Thu,Fri,Sat=20}; Sun, Mon, Tue, Wed, Thu, Fri, Sat 分别为: 0, 1, 2, 3, 4, 5, 20 枚举类型 由于枚举元素是常量,所以我们在程序中不能对它们进行赋值,如sun = 0;mon = 1;将产生错误。  既然枚举元素就是整型值,那么它有什么存在的必要呢?至少有两个原因:一个是用标识符表示数值增加了程序的可读性,例如: weekday today,nextday;   if(today == sat)   nextday = sun   就比   if(today == 6)   nextday = 0;   清楚多了;另一个重要的原因是:它限制了变量取值的范围,如现在today只能取sun~sat中的值。 枚举变量的特殊属性 enum color { red, yellow, blue, white, black }; color a; //定义color型变量a a=red; //合法,将枚举量赋给枚举变量 a=0; //不合法,不能将整数赋予枚举变量 int n=a; // 将枚举量赋值给整型变量,合法 a=color(0); //合法,a=枚举值0,即red a=color(12); //a=枚举值12 * void main(void) { enum team{ qiaut, cubs=4, pick, dodger=qiaut-2;}; prinf(“%d %d %d %d”,qiaut,cubs,pick,dodger); } 输出:0 4 5 -2 第10章 结构体、共用体、位操作和枚举类型 本章小结 结构体是在一个名字下的一组相关变量的集合,它可能会包含不同数据类型的变量。 对结构体成员的访问可以使用成员运算符和指针运算符 共用体的成员可以共享一个存储空间 位运算是按照二进制位对整型数进行操作的 枚举类型用一个用标识符表示的整型常量的集合。 * * date1.day+10==30 * * * 第10章 结构体、共用体、位操作和枚举类型 10.9 位运算符 图10.9程序 :按位与、或等运算符的使用 63 putchar( value displayMask ? ‘1’ : ‘0’ ); 64 value = 1; 65 66 if( c % 8 == 0) { 67 pucchar( ‘ ‘); 68 } /* end if */ 69 } /* end for */ 第10章 结构体、共用体、位操作和枚举类型 10.9 位运算符 图10.9程序 :按位与、或等运算符的使用 70 71 putchar( ‘\n’ ); 72 } /* end displayBits */ 第10章 结构体、共用体、位操作和枚举类型 10.9 位运算符 图10.9程序执行结果 The result of combining the following 65535 =00000000 1111111
显示全部
相似文档