#include<stdio.h>
int *sample();
int main(void)
{
int *p;
p=sample();
printf("%d",*p);
return 0;
}
int *sample()
{
int *p,x=10;
p=&x;
return p;
}
在上面的代码x
中是局部变量。当我在上面用 gcc 编译时,我得到了输出:
10
局部变量仅在声明它的函数中是活动的,并且当控制从函数中出来时,局部变量应该被释放。但这并没有发生。为什么要打印 10?谁能解释这种行为?