c语言程序形参在return时已经被销毁,为什么还能传回值?

c语言程序形参在return时已经被销毁,为什么还能传回值?,第1张

楼主关于“局部变量函数返回时就销毁”的观点是正确的。至于函数为什么还会传回值,是因为在执行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

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11703038.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存