您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
C语言中,函数的返回值返回到main函数后,赋予给一个变量,之后就被回收了吗?还有哪些编程细节需要注意?
函数,寄存器,地址C语言中,函数的返回值返回到main函数后,赋予给一个变量,之后就被回收了吗?还有哪些编程细节需要注意?
发布时间:2020-12-06加入收藏来源:互联网点击:
回答于 2019-09-11 08:43:50
一般a=fun(),函数执行后,返回值在寄存器,立码是个赋值运算,把值从寄存器或寄存器指向的栈空间复制到变量的内存空间。(返回结构会比较复杂)但都不是啥要注意的。一般说法也不是返回main,是返回调用
回答于 2019-09-11 08:43:50
简单的说:
函数的返回值在函数返回时有效
函数内的局部变量,退出函数时立刻失效
相应的,要注意:
不要期望在函数外访问函数的局部变量:例如在函数中定义局部数组,并将数组指针返回调用者,这一指针在返回时已经失效,很可能指向其它数据。
若需要从函数中获取较多、较复杂的数据,可通过传递指针参数的方式实现:例如C库函数中的sprintf
回答于 2019-09-11 08:43:50
堆和栈都在内存内
普通变量放在堆空间,传递的临时数值放在栈空间,传递完毕之后栈数据出栈之后无法访问
除非你定义static变量,这个变量会存放在堆内
回答于 2019-09-11 08:43:50
返回值在寄存器中,只能马上用一次,后面的代码再用寄存器就覆盖了,再出现也就得重复调用了。
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |