这是我的代码:
#include <stdio.h>
//returning a pointer
int *fun()
{
int i = 10;
//printf ("%u\n",i);
//printf ("%u\n",&i);
return &i;
}
int main()
{
int *p;
p = fun();
printf ("p = %u\n", p);
printf ("i = %u \n",*p);
return 0;
}
如果我删除函数 fun 中的注释,那么 main 中的第二个 printf 会显示 10 作为输出。否则它显示一个垃圾值。任何想法?