
楼主关于“局部变量在函数返回时就销毁”的观点是正确的。至于函数为什么还会传回值,是因为在执行return语句时,系统会自动创建一个临时变量(这个变量的存储地址是系统自动分配的,我们无法预知),并把即将被释放的局部变量s的值赋值给这个临时变量。return语句执行完成之后,函数生命周期结束,局部变量s也随之被释放,主调函数通过刚才创建的临时变量获得函数的返回值。
可以参考一下:
网页链接
#include <stdio.h>#include <math.h>
double integ(double sub,double sup,double f(double))
double f(double x)
int main(void)
{
printf("%E\n",integ(5,7,f))
return 0
}
double integ(double sub,double sup,double f(double))
{
double i,sum=0
for(i=subi<=supi+=1e-6)
{
sum+=f(i)*1e-6
}
return sum
}
double f(double x)
{
return exp(5*x)*pow(x,4)-3*x
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)