【发布时间】:2015-11-09 14:06:47
【问题描述】:
我有这个代码:
#include <stdio.h>
#include <math.h>
int *fun();
int main()
{
int *t;
t=fun();
printf("%d\n",*t);
printf("%d\n",*t);
}
int *fun()
{
int r=95;
return(&r);
}
这段代码在代码块中显示的输出是
95
-2
我不明白为什么第二个printf() 正在打印垃圾值。有人可以解释一下吗?
【问题讨论】:
-
使用原型声明器!并启用编译器警告。
-
通过编辑
int fun()-->int *fun()在答案指出缺陷后,否定答案的价值。最好 1) 恢复编辑。 2) 如果需要,附加注释,承认该问题并需要继续帮助。 -
请告诉我们您在编译时收到了什么警告。