定义一个描述红、绿、蓝三色(red,green,blue)的枚举类型,类型名为color,再定义该类型的3个变量R、G和B让其值分别为red、green和blue。再次定义3个指针变量,分别指向变量R、G和B,最后用指针变量输出这3个变量的值。
(这是原题)
#include<stdio.h>
main()
{
enum color {red,green,blue};
enum color r,g,b;
enum color *m,*n,*p;
r=red;
g=green;
b=blue;
m=&r;
n=&g;
p=&b;
printf("%d,%d,%d",*m,*n,*p);
getch();
}
(这是我的代码)
但是每次输出结果都是 0,1,2 这是为什么呢
题目不是说要输出者3个变量的值吗?? 总觉得应该输出 red ,green ,blue 才对啊- -
追答三个变量的值就是 0,1,2,你好好把枚举类型的知识再看一遍吧。枚举可以理解为为整型数值起了个方便理解的别名。而且,你自己都用的是 %d 来 printf,又怎么可能输出字符串呢?除非你自己又做个字典来把这些整型值转换为字符串来输出。
题目不是说要输出者3个变量的值吗?? 总觉得应该输出 red ,green ,blue 才对啊- -