在C语言中,声明一个变量后,没有初始化就使用,可能带来灾难性的后果,而且这种错误经常不容易察觉。
局部变量未初始化
局部变量存储在栈中,是动态存储方式,如果声明了一个变量,系统给这个变量分配了一块内存,这块内存可能存有之前使用过的值,这个值可能是任意值,如果新声明的这个变量没有被初始化,就相当于系统把这块内存中之前存在的值赋给了新声明的变量,这个值可能是任意值,因此得到的就是一个随机值,这种结果无法预测,可能导致灾难性的后果。
全局变量未初始化
全部变量采取的是静态存储方式,在没有初始化之前,被放在BSS段中,操作系统在调用一个程序之前,会执行一段代码,这段代码会将BSS段中的空间全部清零,所以全局变量如果未初始化,其值就是0。
为了避免产生无法预料的后果,在编程的过程中,声明一个变量,我们就要对它进行初始化。