#include<stdio.h>
int *add(int a,int b)
{
int c=a+b;
printf("1--%d\n",c);
return &c;
}
int main()
{
int a=1,b=2,*c;
c=add(a,b);
printf("2--%d\n",c);
}
输出:3 0 其实编译的时候有war 你不能返回一个局部变量的地址!
修改:
static int c=a+b;
1--3
2--4223008
[Finished in 1.1s]
问题其实还是在的!
其实你现在打印的是c的地址值
继续修改: ok
printf("2--%d\n",*c);
这个故事很小 返回连续内存空间 1常量区 2静态区 3堆区
这个地址可以做什么?malloc以后那个free函数可以用!地址相减。