我有一个关于变量范围或生命周期的问题,让我用一个例子来解释我的问题。下面的代码,我创建了一个局部变量 c 并返回它。在 main() 函数中a=foo()
,我认为由于 c 是局部变量并且函数 foo() 已完成,因此变量 c 的内存单元应该已被破坏,变量 a 应保持垃圾值。但它保持 1 . 我哪里错了有没有人可以帮助我?提前致谢。
#include <stdio.h>
int foo()
{
int c=1;
return c;
}
int main()
{
int a;
a=foo();
printf("%d",a);
return 0;
}