我想知道为什么C,C++和Java中的静态变量默认初零归零?为什么局部变量不是这样呢?
我正在读一本关于C progaming faq的书.这是本书的篇章
自动变量是在没有static关键字的函数或代码块内定义的变量.如果未显式初始化这些变量,则这些变量具有未定义的值.如果未初始化自动变量,则必须确保在使用该值之前将其分配给它.
这是我的代码:
#include <stdio.h>
int main (int argc, const char * argv[])
{
{
int x;
printf("%d", x);
}
}
Run Code Online (Sandbox Code Playgroud)
结果printf为0.为什么变量初始化?