C语言中的enum类型可不可以用SCANF等输入语句输入其值?

谭浩强的C语言书上说的不太明白,呵呵
2024-12-15 04:09:07
推荐回答(5个)
回答1:

1、可以的,在C里面,enum类型其实就是int型,但是在C++里不可以。
在C里面可以这样:
enum color{RED, GREEN, BLUE} ;
enum color a;
scanf("%d", &a);
如果输入的是0,对应的是RED,1对应的是GREEN,2对应的BLUE

2、enum是计算机编程语言中的一种数据类型。枚举类型:在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。为此,C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。应该说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。

回答2:

可以的,在C里面,enum类型其实就是int型,但是在C++里不可以。
在C里面可以这样:
enum color{RED, GREEN, BLUE} ;
enum color a;
scanf("%d", &a);
如果输入的是0,对应的是RED,1对应的是GREEN,2对应的BLUE
你用
printf("%d%d%d\n", RED, GREEN, BLUE);会输出012

回答3:

enum(枚举)类型是不能被复制的,这只是一个枚举类型,其定义的成员的值和含义在定义的时候就已经被固定。

你应该使用结构体(struct) 或者是 联合体(union)。

回答4:

不可以只能在enum里面赋值定义,也可以的就是要转个弯,比如你用SCANF输入i的值,再在enum里面给变量赋值就可以了,你不觉得这样麻烦了吗?

回答5:

不能。 只能事先定义好的。