c语言enum用法
㈠ C 语言enum怎么用啊
enum jilu{aa,bb,cc} type;
上面这句话定义了一个名叫jilu的枚举类型,并且定义了该类型的一个变量type
要用语句给type赋值的话可以这样写:
DATA a;
int n;
scanf("%d",&n);
a.type=(enum jilu)n; //n不能大于2
这里输入0、1、2分别表示把a.type的值设为aa、bb、cc
你可以设计一个字符数组来输出,这样可以看到自己的程序写得对不对:
char str[][3]={"aa","bb","cc"};
printf("%s",str[(int)a.type]);//或者printf("%s",str[n]);
如果想直接输入aa、bb这样的字符串的话实在很麻烦……你还是输入整数吧……
还有就是这个程序似乎需要在结构类型DATA定义前先单独定义枚举类型jilu,不然有的编译器通不过的。
我个人认为枚举是c语言中比较鸡肋的一个数据类型……用起来很麻烦的。
㈡ enum在c语言中是什么意思
enum是计算机编程语言中的一种数据类型。
枚举类型:在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。
为此,C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。应该说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。
枚举类型定义的一般形式为:
1、enum 枚举名{枚举值表 };
在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。
例如:
该枚举名为weekday,枚举值共有7个,即一周中的七天。凡被说明为weekday类型变量的取值只能是七天中的某一天。
2、枚举变量的说明
如同结构体(struct)和共用体(union)一样,枚举变量也可用不同的方式说明,即先定义后说明,同时定义说明或直接说明。
㈢ C语言中为什么要使用enum
1 enum是枚举类型,与整型、浮点型、字符型等都属于原子类型。
2 用法示例,常用switch语句搭配使用
#include<stdio.h>
enumDirection
{
East,West,South,North
};
intmain(){
enumDirectionyourDirection=South;
switch(yourDirection){
caseEast:
puts("东方");
break;
caseWest:
puts("西方");
break;
caseSouth:
puts("南方");
break;
caseNorth:
puts("北方");
break;
}
getchar();
return0;
}
㈣ 有关c语言中的枚举enum使用
#include <stdio.h>
enum
{
Qi=1,//企划部
Cai,//财务部
Ren,//人力资源部
Shi,//市场部
};
main()
{
int n;
printf("1-企划部,2-财务部,3-人力资源部,4-市场部\n");
printf("请输入:");
scanf("%d",&n);
printf("你输入的是:");
switch(n)
{
case 1:
printf("企划部\n");
break;
case 2:
printf("财务部\n");
break;
case 3:
printf("人力资源部\n");
break;
case 4:
printf("市场部\n");
break;
}
}
㈤ 关于C语言中的enum用法
enum是枚举类型,枚举类型是将一类有关联的标识组合起来,枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号隔开,外层用{ }括起来。
Color{red,yellow,blue,white,black}可以定义成枚举类型,但是Color i,j,k,pri不能用枚举定义,因为它们之间没有任何关联。
程序第5行改成 int i,j,k,pri;即可,我已运行成功,没有错误。我用的Visual c++ 6.0
你运行下面这个程序
#include<stdio.h>
int main()
{
enum Color{red, yellow, blue, white, black};
int i, j, k, pri;
int n = 0;
int loop;
for(i=red; i<=black; ++i)
for(j=red;j<=black;++j)
if(i!=j)
{for(k=red;k<=black;++k)
if((k!=i)&&(k!=j))
{n=n+1;
printf("%-4d",n);
for(loop=1;loop<=3;loop++)
{switch(loop)
{case 1:pri=i;break;
case 2:pri=j;break;
case 3:pri=k;break;
default:break;
}
switch(pri)
{case red:printf("%-10s","red");break;
case yellow:printf("%-10s","yellow");break;
case blue:printf("%-10S","blue");break;
case white:printf("%-10s","whire");break;
case black:printf("%-10s","black");break;
default:break;
}
}
printf("\n");
}
}
printf("\ntotal:%5d\n",n);
return 0;
}
㈥ c语言enum是什么意思
enum是计算机编程语言中的一种数据类型。枚举类型:在实际问题中,有些变量的取值被限定在一个有限的范围内。
C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。
例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。
(6)c语言enum用法扩展阅读
c语言enum的定义
publicenumPersonnel{
小明,小红,小蓝;
}
//扩展一下
publicenumPersonnel{
小明("男",21,86),
小红("女",22,55),
小蓝("男",23,73);
privateStringsex;
privateintage;
privateintresult;
}
//在扩展一下重写小红的isPass方法重写下toString并带上构造getset不贴了
publicenumPersonnel{
小明("男",21,86),
小红("女",22,55){
@Override
publicbooleanisPass(){
returnfalse;
}
},
小蓝("男",23,73);
privateStringsex;
privateintage;
privateintresult;
/*构造*/
privatePersonnel(Stringsex,intage,intresult){
this.sex=sex;
this.age=age;
this.result=result;
}
@Override
publicStringtoString(){
returnthis.name()+"性别:"+this.getSex()+"年龄:"+this.getAge()+"成绩为:"+this.getResult();
}
}
㈦ C语言枚举类型怎么用
枚举类型定义时,定义的是可以枚举的常量,常量符号的值在定义枚举时已经初始化完成。
有没有枚举变量都不影响已经存在的可枚举常量,
定义枚举变量将来也是要赋值某一枚举常量的。
比如:
WeekTypedef day=Monday;
㈧ enum在c语言中怎么用 (枚举型)
(3) 第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1。 (4) 可以人为设定枚举成员的值,从而自定义某个范围内的整数。 (5) 枚举型是预处理指令#define的替代。 (6) 类型定义以分号;结束。定义枚举类型 enum YOURENUMTYPE{ID1,//如果不额外指定则第一个标识等于整数0,后续依次加1ID2, ID3=7, IDn//最后一个标识符后面没有逗号 };//注意一定要加上这个分号定义枚举变量 enum YOURENUMTYPE varname; 给枚举变量赋值 varname = IDx;举个完整的例子enum FRUIT{APPLE, PEAR, ORANGE, PEACH, GRAPE, BANANA};enmu FRUIT myfruit = PEACH; 1举个例子: 学生 类分大学生 高中 初中小学生 你就可以这么做 enum student{colleage,high,middle,junior} //小明是个大学生 student xiaoming=colleage;//判断小刚是不是高中生
㈨ c语言中,什么是枚举类型(enum),给个例子
typedef enum
{
TEST_ENUM_ZERO,
TEST_ENUM_FRIST,
TEST_ENUM_END
}TEST_ENUM;
TEST_ENUM test;
test就是一个枚举类型的变量,其值可以是TEST_ENUM_ZERO,TEST_ENUM_FRIST,TEST_ENUM_END中的一个,TEST_ENUM_ZERO其实就是0,TEST_ENUM_FRIST就是1,以此类推