在'C编程语言'第三版和第32页中,我看到那些令我困惑的行:
因为自动变量随函数调用而来,所以它们不会从一次调用到下一次调用保留它们的值,并且必须在每个条目上显式设置.如果它们没有设置,它们将包含垃圾
是不是说对于下面的代码,a在程序完成执行后不会包含垃圾,如果我这样声明a:int a;那么a会包含垃圾吗?
#include <stdio.h>
int main () {
int a = 5;
// int a;
printf("\n\t %d", a);
}
Run Code Online (Sandbox Code Playgroud)
Woj*_*wka 10
使用未初始化变量的值是未定义的行为.实际上,自动变量分配在处理器寄存器或堆栈中.通常,如果没有初始化,它们将获得当前用于堆栈的寄存器或存储器中的值.因此,例如,int变量可能包含一部分内存,该内存double在刚刚调用的函数中是可变的.换句话说,该值是随机的.