#include<stdio.h>
int *fun();
int main()
{
int *ptr;
ptr=fun();
printf("%d",*ptr);
printf("%d",*ptr);
}
int * fun()
{
int k=4;//If auto then cannot print it two times.....stack will be changed
return(&k);
}
O/P: 4
-2
第一次调用 printf() 会打印正确的值。
在调用 fun() 之后立即调用任何函数(甚至 printf())。这次 printf( ) 打印一个垃圾值。为什么会发生这种情况?为什么我们在第一个打印语句本身期间没有得到垃圾值????