二级考试C语言教程第八章:枚举,位运算
第8章:枚举、按位运算
枚举
在实际问题中,有些变量的值被限定在有限的范围内。比如一周只有七天,一年十二个月,一个班每周六门课,等等。如果把这些量描述成整数,用字符或者其他类型显然是不合适的。为此,C语言提供了一种叫做“枚举”的类型。所有可能的值都列在“枚举”类型的定义中,被描述为“枚举”类型的变量的值不能超出定义的范围。应该注意,枚举类型是基本数据类型,而不是构造类型,因为它不能再分解为任何基本类型。
枚举类型的定义和枚举变量的描述
一、枚举的定义枚举类型定义的一般形式是:
enum枚举名称
{枚举值表};
枚举值表中应列出所有可用的值。这些值也称为枚举元素。
例如:enum weekday
{sun,mou,tue,wed,thu,fri,sat };
这个枚举名为weekday,有七个枚举值,即一周中的七天。描述为工作日类型的变量值只能是七天中的一天。
第二,枚举变量的描述和结构、并集一样,也可以有不同的描述方式,即先定义后解释,同时直接定义或解释。变量A、B、C描述为上述工作日,可以是以下任意一种方式:
ENUM WEEKDAY
{
...
};
枚举工作日a、b、c。或者:enumweekday
{
...
} a,b,c;或者:enum
{
...
} a,b,c;
列举类型变量的赋值和使用。
枚举类型有以下使用规定:
1。枚举值是常量,不是变量。你不能在程序中用赋值语句来赋值。例如,将以下值赋给枚举weekday的元素:sun = 5;mon = 2;sun = mon都是错的。
2.枚举元素本身被系统定义为表示序列号的数值,序列号被定义为0,1,2,...例如,在工作日,日光值为0,mon值为1,…,而…,sat值为6。
main(){
enum weekday
{周日、周一、周二、周三、周四、周五、周六} a、b、c;
a =孙;
b = mon;
c = tue;
printf("%d,%d,%d ",a,b,c);
}
3。只能将枚举值赋给枚举变量,元素的值不能直接赋给枚举变量。例如a = sumb = mon是正确的。并且:a = 0;b = 1;是错误的。如果必须给枚举变量赋数值,就必须使用强制类型转换,比如:a =(enum weekday)2;其含义是将序号为2的枚举元素赋给枚举变量A,相当于:a = tue还需要注意的是,枚举元素既不是字符常量,也不是字符串常量,使用时不要加单引号或双引号。
main(){
枚举体
{ a,b,c,d } month[31],j;
int I;
j = a;
for(I = 1;imonth[I]= j;
j++;
if(j > d)j = a;
}
for(I = 1;is witch(month[I])
{
case a:printf(" % 2d % c \ t ",I,' a ');打破;
情况b:printf(" %2d %c\t ",I,' b ');打破;
case c:printf(" %2d %c\t ",I,' c ');打破;
案例d:printf(" %2d %c\t ",I,' d ');打破;
默认值:break
}
}
printf(" \ n ");
}
按位运算
0条评论