【发布时间】:2017-10-28 06:42:37
【问题描述】:
我正在尝试将存储在局部变量中的值返回给 main() 函数。
#include<stdio.h>
int *func();
int main()
{
int *ptr;
ptr = func();
printf("%d", *ptr);
printf("%d", *ptr);
return 0;
}
int *func()
{
int x = 5, *p;
p = &x;
return p;
}
第一个 printf() 语句给出了 output = 5,但第二个 printf() 语句给出了一个垃圾值作为输出。
我知道函数“func()”终止后局部变量“x”将不存在。那么为什么它为第一个 printf() 语句打印 5 呢? 请告诉我代码中发生了什么。
【问题讨论】:
-
你的空格键有问题吗 - 你的代码缩进会很好
标签: c