C语言为什么老是出现烫呢?

#include
struct aa
{
char a[3];
char b[3];
char c[3];
char d[3];
char f[3];
}p1={"红","黄","蓝","白","黑"};
int main()
{
struct aa p1;
printf("%s%s%s%s%s\n",p1.a,p1.b,p1.c,p1.d,p1.f);
return 0;
}
为什么老是出现烫呢?

因为没有赋值。VC++ 6.0为了便于调试,所以在debug版上,会默认将没有分配的内存设置为0xcccccccccccc........
而0xcccc正好是“烫”的内码。
如果你用release编译,而不是debug,那么结果就是随机的。

你的全局变量p1和局部变量p1重名,在main函数中使用没有初始化的p1,所以输出默认值。

p1没有进行初始化,重新初始化

你是不是也经常看见“辊斤考”?

你需要在main函数里声明变量并初始化,而且你的结构体最好改成指针。struct aa{ char *a;……};然后在主函数里面声明p1 。struct aa p1={"红",……}。然后就可以输出了

因为没有赋值。VC++ 6.0为了便于调试,所以在debug版上,会默认将没有分配的内存设置为0xcccccccccccc........
而0xcccc正好是“烫”的内码。
如果你用release编译,而不是debug,那么结果就是随机的。