2.4

这里说的初始化就是对变量进行赋值。我们先看看没有进行初始化的变量会输出什么。

 # include<stdio.h>
 int main(void)
 {
     int i;
     printf("%d
", i);
     return i;
 }

我们来看看程序的输出结果

 -858993460
 Press any key to continue

我们看到程序输出了很大的一串数字。重复执行几次程序结果都是一样的。这又是为什么呢?

前面我们讲解到,变量是内存中一段空闲的空间,我们在使用这段空闲的空间之前很有可能之前也有别的程序也使用过了,留下来了一些残留的垃圾数据。 但是如果是这样的话,这些数据应该是随 机的而不应该每次执行都是一样的结果啊!原来 vc++6.0 这个软件很早就发现了这个问题,于是在我们没有对变量进行初始化的时候提前的给变量所在的内存空间进行赋初值了,赋了一个 -8 开头的很大的数据,让我们看到后就知道是变量没有初始化。

垃圾数据

软件在运行之前会向操作系统申请存储空间。在内存空间足够的情况下,操作系统将会分配一段空闲的内存空间,并将外存中的软件拷贝一份放入内存空间中,并启动该程序的运行

在软件运行期间,该软件所占有的内存空间不再分配给其余的软件,而是自己一个人占有直至任务结束

当软件运行完毕后,操作系统将回收该内存空间(注意: 操作系统并不会清空该内存空间中遗留下来的数据),以便给别的软件分配空间。(这些遗留下来的数据我们叫做垃圾数据)

本文来自博客园,作者:江湖混子,转载请注明原文链接:https://www.cnblogs.com/huao990928/p/15547083.html

原文地址:https://www.cnblogs.com/huao990928/p/15547083.html