局部变量注销的问题
#include"stdio.h"
void main()
{
int * a(int,int);
int *one,two=2,three=2;
one=a(two,three);
printf("%d\n",*one);
}
int * a(int x,int y)
{
int x1;
x1=x+y;
int *p;
p=&x1;
return(p);
}
p指向的是一个x1的地址,但是程序运行的时候还能准确的输出4。 在int * a(int x,int y)返回值的时候X1都已经注销了。为什么p指向的值还能正常输出。 运行了很多次都是一样。排除偶然。