为什么自动变量将包含垃圾,如果没有设置?
发布时间:2020-12-16 10:34:55 所属栏目:百科 来源:网络整理
导读:在’C编程语言’第三版和第32页中,我看到那些令我困惑的行: Because automatic variables come and go with function invocation,they do not retain their values from one call to the next,and must be explicitly set upon each entry. If they are not
在’C编程语言’第三版和第32页中,我看到那些令我困惑的行:
它是说对于下面的代码,一个程序完成执行后不会包含垃圾,如果我声明这样:int a;然后一个将包含垃圾? #include <stdio.h> int main () { int a = 5; // int a; printf("nt %d",a); } 解决方法
使用未初始化变量的值是未定义的行为.实际上,自动变量分配在处理器寄存器或堆栈中.通常,如果没有初始化,它们将获得当前用于堆栈的寄存器或存储器中的值.所以例如一个int变量可能包含一个内存的一部分,该内存在刚刚调用的函数中是双变量的.换句话说,该值是随机的.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |