#include<stdio.h>
int * fun(int a1,int b)
{
int a[2];
a[0]=a1;
a[1]=b;
return a;
}
int main()
{
int *r=fun(3,5);
printf("%d\n",*r);
printf("%d\n",*r);
}
输出:解释输出
3
-1073855580
据我所知,[2]是本地的乐趣(),但为什么值得到改变同一个指针的?
任何影响堆栈的操作都可以改变输出。有时你可能**看到'printf'输出相同的值 - 这是因为编译器对你的代码进行了优化 - 但是,我们不能依赖不确定的结果。 – Stan