当前位置: 代码迷 >> C语言 >> 没赋值,为什么会有答案
  详细解决方案

没赋值,为什么会有答案

热度:56   发布时间:2007-12-31 13:23:16.0
没赋值,为什么会有答案
#include "stdio.h"

main()
{
     int y, i;

     for (i=0;i<20;i++)
     {
           if(i%2==0)
           continue;
           y+=1;       /*             */
           printf("%d\n",y);
      }
getch();
}
没有给 y 赋值,可是通过编译有答案
为什么呀??
搜索更多相关的解决方案: 赋值  

----------------解决方案--------------------------------------------------------
没赋值 != 没有值

每个变量都需要占用一定的内存空间,这段空间存放的就是变量的值
变量定义的时候,就会为他指定一段内存空间,如果是局部变量,系统不会自动初始化这段内存
如果这时候直接读取,那么读取到的就是这段内存原来保存的数值

这样可能会引起很多意想不到的错误
----------------解决方案--------------------------------------------------------
是不是每次运行,得到的值都不一样??
----------------解决方案--------------------------------------------------------
这是系统随机分配的无效值,如定义时没有初始化
在程序中也得赋一个值.
y=(某一个量)
----------------解决方案--------------------------------------------------------
如果你不能100/100的保证``你定义的变量在使用前``回被由有用值覆盖``请你将它初始化
----------------解决方案--------------------------------------------------------
y+=1相当于y++,y实现自身累加,其值由于没有赋值,由系统自己随机生成,所以有答案输出.
----------------解决方案--------------------------------------------------------
结果是随机的
----------------解决方案--------------------------------------------------------
  相关解决方案