鱼C论坛

 找回密码
 立即注册
查看: 1230|回复: 2

[已解决]萌新求助关于闭包的问题

[复制链接]
发表于 2017-11-26 21:30:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
解释有点看不懂,解释的意思是说因为函数没有被释放,所以每次调用函数的时候x不会被重新赋值,所以函数值会调用一次增加1。
我想问:
1、为什么函数没有被释放x就不会被重新初始化呢?计算机在这里的运行机制是什么?
2、函数被释放是怎样的定义呢?
3、x算作是funX()中定义的一个变量而不是funX()的参数对吧?


电脑小白,虚心求教各位大神,望不吝赐教,拜谢!
最佳答案
2017-11-26 22:04:11
1.  函数名本身只是一个地址而已,调用函数的时候采用的是入栈操作
2.  释放的意思就是清空栈,将所有数据出栈
3.  是

你如果对内部实现机制感兴趣,可以百度一下 栈
或者学习C语言或汇编
微信图片_20171126210651.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-11-26 22:04:11 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
1.  函数名本身只是一个地址而已,调用函数的时候采用的是入栈操作
2.  释放的意思就是清空栈,将所有数据出栈
3.  是

你如果对内部实现机制感兴趣,可以百度一下 栈
或者学习C语言或汇编
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-26 22:19:46 | 显示全部楼层
BngThea 发表于 2017-11-26 22:04
1.  函数名本身只是一个地址而已,调用函数的时候采用的是入栈操作
2.  释放的意思就是清空栈,将所有数据 ...

感谢您的回复,不过我还是没太看懂,调用函数是入栈操作为什么不会初始化x呢?
什么情况下才会清空栈呢?

我去百度栈看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 23:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表