在做这道题时,我想着用一个枚举变量来将这九个字母对应起来,这样输出时就可以通过对应数字来输出字母。 (原代码删了,这就不贴了)
但是失败了,查阅资料后发现:枚举类型是可以实现将枚举量自动转换成整形,但反之不会:
可以通过强制类型转换将整型强制转换成枚举量,但是只能用来赋值给枚举变量,不能用来输出好像:
#include<stdio.h>
enum a{ A = 1,B,C,D,E,F,G,H,I };
int main() {
printf("%2d",a(3));
return 0;
}
输出是这样:
可以看出通过枚举类型名a将3转换成枚举量之后,在输出时编译器又自动的将其转换成对应整型3了。
将格式输出改为字符后,结果输出了乱码:
#include<stdio.h>
enum a{ A = 1,B,C,D,E,F,G,H,I };
int main() {
printf("%2c",a(3));
return 0;
}