我重新开始使用 c++,并正在考虑变量的范围。
如果我在函数内有一个变量,然后我返回该变量,那么该变量在返回时不会因为它所在的作用域已结束而“死亡”吗?
我已经尝试过使用返回字符串的函数,它确实有效。
谁能解释一下吗?或者至少给我指出一些可以向我解释这一点的地方。
Thanks
当函数终止时,
发生以下步骤:
该函数的返回值为
复制到占位符中
为此目的放入堆栈。
堆栈帧之后的所有内容
指针弹出。这破坏了
所有局部变量和参数。
返回值被弹出
堆栈并被分配为值
的函数。如果值
函数没有分配给任何东西,
没有进行任何分配,并且
价值就丢失了。
下一条指令的地址
要执行的内容从堆栈中弹出,
CPU 恢复执行
该指令。
栈和堆 http://www.learncpp.com/cpp-tutorial/79-the-stack-and-the-heap/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)