关于return:
今天脑袋一懵逼,无法理解函数将局部变量的基本类型值返回。后来找了一下,原来这样做是合法的。原因是return 有一个返回机制。但是局部指针是不能被返回的。因为地址里面的内容已经被销毁了。生命周期结束。
#include <stdio.h>
int add(int a,int b){
return a+b;
}
int *sub(int a,int b){
int *c=a-b;
return c;
}
void main()
{
printf("a+b=%d\n",add(3,2));
int *c=sub(7,2);
printf("a-b=%d\n",*c);
}
结果:
a+b=5
Segmentation fault (core dumped)