为什么要变量初始化,不初始化有什么影响?

为什么要变量初始化?如果没有进行变量初始化对结果有什么影响?会发生什么错误?
怎样进行变量初始化?

img

一个变量不初始化的时候 并不会是正常人期望的0,而是一个随机数 当你的程序慢慢庞大起来之后,可能会出现这种情况,还没有赋值 他自己是一个随机数的时候你就把这个值用在你的逻辑和程序中了,势必造成混乱,更可怕的是野指针的情况,你创建了一个指针,但是没有告诉他指向内存中的哪一个地方,如果你后面正常指向了后使用还好,但是恰恰是程序庞大了逻辑复杂了之后,你使用了一个不知道指向哪里的指针,情况幸运的时候只是程序死掉。不付初值的情况还有很多很多情形,总之赋初值是一个很好的习惯。至于问如何赋初值,int a = 0; 这样即是创建的时候赋初值。

这个问题还是很好的~~~

变量有可能是全局变量、静态变量、临时变量,不同情况都有不同的用法

  1. 全局变量,这个全局变量有可能是extern 的,那么变量在使用的时候,只需要声明一下即可,之后就可以拿过来直接用了。但是在用的时候你或许要经过一些简单的check,因为你不知道它的初值为多少
  2. 静态变量,编译器默认会给它赋初值0.
  3. 最关键的一点,指针。。。。在你使用指针的时候,或许会如下使用:

```c
if (p) {
    p->......
}

```
但是如果指针没有赋初值,它有可能不为0,那么这里就会认为正常并使用这个指针,而其实。。。你知道。。。你在用野指针。。。

在编程的时候,当你定义变量的时候,最好是养成一个习惯,对其赋初值。。。。
希望能帮到你,如果有其他疑问,欢迎交流~~~~~


可以查看手册:c语言-初始化 中的内容