wangfuwei88 2013-12-23 14:29 采纳率: 0%
浏览 4531

关于全局变量的初始化问题

#include
#include
#include

//全局变量:用于保存通讯录
struct com{
char name[20];
char tel[15];
}temp;

void main()
{
FILE *fp; //定义一个指向文件的指针
char filename[20]; //用于保存文件路径
int choice, flag=1;
printf("请输入文件路径:\n");
scanf("%s", filename);
fp = fopen(filename,"wb");
if(!fp)
{
printf("错误!文件打不开!\n");
printf("按任意键退出");
getchar();
exit(0);
}
while(flag)
{
printf("请选择:按1添加/按0退出\n");
scanf("%d", &choice);
switch(choice)
{
case 0:
flag = 0;
break;
case 1:
printf("输入姓名:\n");
scanf("%s", temp.name);
printf("输入电话:\n");
scanf("%s", temp.tel);
fwrite(&temp, sizeof(struct com), 1, fp);
default:
break;
}

}
fclose(fp);
system("pause");
}
如果在定义结构体类型的时候直接用全局变量temp,字符数组可以自动初始化,其元素都为'\0',但是如果是在main函数里定义该结构体变量,则不会初始化,写进文件的结果会由于数组的未初始化而出现乱码。请问这如何解释?定义全局变量跟局部变量时初始化应该注意哪些问题?

  • 写回答

1条回答

  • oyljerry 2015-01-04 14:46
    关注

    全局变量会初始化为0,而局部变量初始化为其他,所以需要自己初始化

    评论

报告相同问题?

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值