C语言的枚举值以 %s 输出报错,什么原因啊??“出现了一个问题,导致程序停止正常工作....”,

#include <stdio.h>
int main()
{
enum weekday
{sun,mon,tue,wed,thu,fri,sat}a,b,c;
a=sun;
b=mon;
c=tue;
printf("%d,%d,%d\n",a,b,c);
printf("%s,%s,%s\n",a,b,c); /////??这句报错.为什么啊??

return 0;
}
////////
0,1,2
Press any key to continue

枚举类型的变量是“值”(int 类型的值),所以用格式"%d"输出枚举类型变量的值是合理的,但当用"%s"输出时,会将枚举变量的值看作是指针,这个“指针”指向低端存储区,这个存储区是系统使用的,用户程序既不能“读”,也不能“写”,如果试图访问这些“禁区”,必然会是程序崩溃。追问

枚举类型的变量是“值”,这个值都是int类型的吗?

追答

是的,在C/C++中,显示enum类型变量的大小的格式是"%d"。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-05-25
%s对应的是地址
第2个回答  2015-05-25
我只能回答你枚举元素是整型
输出字符串的方法,需要用switch语句,你应该知道怎么用追问

不会啊。求指点啊~~

追答

不说

相似回答