c语言中如果不对变量初始化可能出现的问题是什么?

center_de_han 2008-03-14 11:07:39
#include<stdio.h>
void main()
{
int count=0,i,a[3]={1,2,3};
for(i=0;i<3;i++)
{
count+=a[1];
}
printf("count===%d",count);
getchar();
}

#include<stdio.h>
void main()
{
int count,i,a[3]={1,2,3};
for(i=0;i<3;i++)
{
count+=a[1];
}
printf("count===%d",count);
getchar();
}
会得到完全不同的结果,为什么?
...全文
405 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ttlyfast 2008-03-14
  • 打赏
  • 举报
回复

能拾到最近一次旅游中游客随意仍下的香蕉皮
星羽 2008-03-14
  • 打赏
  • 举报
回复

可能是为了效率,在c中,局部变量是不会自动初始化的,只有全部变量会

不初始化,就以为着里面的数据是无法预知的,也就是可能出现任何值
center_de_han 2008-03-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 qiucp 的回复:]
都知道可能会出现问题了,在使用的时候就对他初始化了,这也是很好的编程习惯了。有些事情不用去钻牛角尖的。^_^
[/Quote]
因为对c语言对内存的管理不是很明白,想多了解一点,谢谢各位了!
geniar 2008-03-14
  • 打赏
  • 举报
回复
一切皆有因果!!!呵呵
qiucp 2008-03-14
  • 打赏
  • 举报
回复
都知道可能会出现问题了,在使用的时候就对他初始化了,这也是很好的编程习惯了。有些事情不用去钻牛角尖的。^_^
smilewindy 2008-03-14
  • 打赏
  • 举报
回复
ls说的都很有道理。
sandoblue 2008-03-14
  • 打赏
  • 举报
回复
未初始化的变量,其初始值就要看在什么系统上了,一般情况下栈上的变量随机
cad_vc 2008-03-14
  • 打赏
  • 举报
回复
int count;
不初始化count可能是任意值
baihacker 2008-03-14
  • 打赏
  • 举报
回复
你自己都说了,没有对变量进行初始化.
对于栈上的变量一般是随机值
全局的会用0初始化其内存
最常见的就是访问违例和结果和预料的不一样

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧