#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()會輸出正確的值。調用堆棧 - 函數返回調用函數的局部變量引用,然後調用另一個函數
調用任何功能(甚至printf()函數)調用的樂趣後,立即()。這一次printf()打印一個垃圾值。爲什麼會發生這種情況?爲什麼我們在第一個打印語句本身期間沒有獲得垃圾值?