C语言学习【2】-初始化

C语言当中为什么变量要被初始化(所谓初始化就是给变量赋值)

如下图所示为没有对变量i进行初始化的代码。

编译后可以得到结果为

如下,如果多个变量都没有被初始化的时候

变量为i,j:

编译后得到结果

变量i,j,m:

扫描二维码关注公众号,回复: 8987746 查看本文章

编译后得到结果:

可以看到结果为一个很大的数字,且编译数次都为固定值如4177908。

那这个固定值又是什么呢?

定义一个变量就给这个变量分配一个内存空间,我们知道内存中存储的信息实际上都是高低电平信号,而内存中不可能什么点ing都没有,如果不给变量赋值,那么这个内存空间存储的信息就会直接输出,而变量i所占内存空间很可能是被别的程序使用过,程序结束后就释放了(释放就是软件解除了对该内存空间的使用权,而该内存空间的值并没有被删除,所以称为垃圾值)。如果没有给该内存空间赋值,那么编译器就会将很大的数值放进去,这就是我们看到的编译100遍都会产生的相同的值的原因,这个值就是那个固定值(非术语),这个固定值根据编译器的不同而不同。比如我用的Linux gcc 4.4.7是这个值,如果你用VC6.0又是个别的值。

软件运行有内存关系(垃圾数据)

内存是在操作系统的统一管理下使用的!

1、软件在运行前需要想操作系统申请存储空间,在内存空闲空间足够时,操作系统将分配一段内存空间并将外存中软件拷贝一份存入该内存空间中,并启动该软件的运行!

2、在软件运行期间,该软件所占内存空间不再分配给其他软件

3、当软件运行完毕后,操作系统将回收该内存空间(注意:操作系统并不清空该内存空间中遗留下来的数据),以便再次分配给其他软件使用。

综上所述,一个软件所分配到的空间中极可能存在着以前其他软件使用过后的残留数据,这些数据被称之为垃圾数据。所以通常情况下我们为一个变量,为一个数组,分配好存储空间之后都要对该内存空间初始化!

发布了20 篇原创文章 · 获赞 1 · 访问量 394

猜你喜欢

转载自blog.csdn.net/qq_41505080/article/details/104139179
今日推荐