.NET:栈的生长与消亡
摘要:
背景多数情况下我们不需要关心栈的变化,不过个别场景下还是需要对此有所了解,如:指针操作,下文会给出一个具体的示例。另外,理解栈的变化对于理解作用域也有一定的好处,因为C#的局部变量作用域是基于栈的。栈的变化规则方法调用会导致栈的生长,具体包括两个步骤:一、插入方法返回地址(下图中的Fn:);二、将实际参数按值(可以使用ref或out修饰)拷贝并插入到栈中(可以使用虚参数访问)。遇到局部变量定义会向栈中插入局部变量。遇到return语句会导致栈消亡,一直消亡到方法返回地址,并把return的返回值设置到方法返回地址中。这里先不考虑中括号导致的栈的消亡。简单的示例最后的小测试,输出的啥内容? 1 阅读全文
posted @ 2013-06-13 23:17 幸福框架 阅读(1295) 评论(2) 推荐(3) 编辑