2 binge88888 binge88888 于 2016.05.10 23:56 提问

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;
}
为什么老是出现烫呢?

6个回答

wll1228
wll1228   2016.05.11 07:30

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

caozhy
caozhy   Ds   Rxr 2016.05.11 00:03

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

havedream_one
havedream_one   2016.05.11 08:06

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

dongfeng9ge
dongfeng9ge   Ds   Rxr 2016.05.11 09:14

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

herozhangbz
herozhangbz   2016.05.11 11:33

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

ZGZ1002
ZGZ1002   2016.05.11 13:45

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!