当前位置:  编程技术>.net/c#/asp.net

c#栈变化规则图解示例(栈的生长与消亡)

    来源: 互联网  发布时间:2014-10-24

    本文导语:  栈的变化规则:1、方法调用会导致栈的生长,具体包括两个步骤:一、插入方法返回地址(下图中的Fn:);二、将实际参数按值(可以使用ref或out修饰)拷贝并插入到栈中(可以使用虚参数访问)。2、遇到局部变量定义会向...

栈的变化规则:

1、方法调用会导致栈的生长,具体包括两个步骤:一、插入方法返回地址(下图中的Fn:);二、将实际参数按值(可以使用ref或out修饰)拷贝并插入到栈中(可以使用虚参数访问)。
2、遇到局部变量定义会向栈中插入局部变量。
3、遇到return语句会导致栈消亡,一直消亡到方法返回地址,并把return的返回值设置到方法返回地址中。
4、这里先不考虑中括号导致的栈的消亡。



代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace StackAndHeapStudy
{
    unsafe class Program
    {
        static void Main(string[] args)
        {
            var test = new TestClass();
            SetX(test);
            Console.WriteLine(*test.X);
            Console.WriteLine(*test.X);
        }

        private static void SetX(TestClass test)
        {
            var X = 10;

            test.X = &X;
        }
    }

    unsafe class TestClass
    {
        public int* X;
    }
}


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • jqGrid随窗口大小变化自适应大小的示例代码
  • 如何使在JLable中加载的ImageIcon随着窗体的大小变化而变化,谢谢!!!
  • visio二次开发--判断文档是否已发生变化(变化就加星号*)
  • 怎样捕获组合框中文本发生变化的事件?
  • linux2.4到2.6,信号的概念有哪些变化?
  • 操作系统目录变化监控 jpatchwatch
  • 遍历其文件动态变化的目录
  • linux如何监控某个文件内容的变化并
  • 请问从hp-ux到linux移植时,socket部分会有什么变化?哪位大虾有详细的文档?
  • 如何得到关于Swing组件中的JTextField控件内数据发生变化时的方法?
  • 怎么监控文件的变化(不使用轮循的方法)
  • [官方最新消息]Oracle 10G 认证考试新变化
  • 更换网络 主机名变化了
  • linux内核版本变化问题
  • 有哪个文档详细说明linux内核的每个版本的变化?
  • 请问 makefile 嵌套执行,在不同目录中,同一文件的相对路径发生变化怎么办?
  • 如何控制同页面下两个选择框的内容相互变化???
  • 请问:linux 下 C语言编程 , 如何将 串口 由 全双工 变化为 半双工 通讯 方式?
  • 9260串口的handshaking模式,RTS/CTS电平如何变化
  • 谁能让图片随 Frame 的大小变化自动适应窗口,帮帮我
  • HTML标签参考手册 iis7站长之家


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3