C++中如果一个int型变量没有给具体值,为什么用cout输出时会是一个确定的数?

#include <iostream>
using namespace std;
int main()
{
int ji;
cout<<ji<<endl;
int hu;
cout<<hu<<endl;
return 0;
}
比如这个简单的代码,两次输出结果-858993460。这是怎么回事?

C/C++的变量声明时,多数是可初始化也可不初始化的;而其中有些变量不初始化时系统会自动初始化为0或NULL,具体可能还会因编译器的不同而有差异。通常情况下,int、double、char等类型的变量不初始时其值是不定的,而数组、字串则可能是0或NULL或许也是不定的。所以你遇到的这种情况一点都不奇怪。正因为如此,C/C++规定变量都得先定义(初始化)再使用。这里说的“不定”或“随机”并不是指你运行一次就有不同的结果,而是指在这台机器上是这个结果而在另一台机器上是另一结果;或是指这次开机运行是这个结果再次开机运行可能就是另一种结果……
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-06
指定物理地址无初始化状态 按照原来的数字进行输出
白话就是 原来你占的位置有字 你占了之后没有进行修改 原来的数字没有变...输出时自然会有东西...本回答被网友采纳
第2个回答  2012-09-06
那是个随机值,该随机值实际就是这个变量所在的内存的内容。在c&c++中使用变量时必须赋值。
第3个回答  2012-09-15
乱码而已,这是随机产生的,因为你定义的变量没有进行赋值操作
第4个回答  2012-09-06
如果是在函数里的话,就是一个随机值,如果在全局变量的话,就是0,我没有试过哦,全局变量会自己初始化