欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

c#棧變化規(guī)則圖解示例(棧的生長與消亡)

 更新時間:2013年11月25日 10:34:16   作者:  
多數(shù)情況下我們不需要關(guān)心棧的變化,下文會給出一個具體的示例。另外,理解棧的變化對于理解作用域也有一定的好處,因為C#的局部變量作用域是基于棧的。

棧的變化規(guī)則:

1、方法調(diào)用會導致棧的生長,具體包括兩個步驟:一、插入方法返回地址(下圖中的Fn:);二、將實際參數(shù)按值(可以使用ref或out修飾)拷貝并插入到棧中(可以使用虛參數(shù)訪問)。
2、遇到局部變量定義會向棧中插入局部變量。
3、遇到return語句會導致棧消亡,一直消亡到方法返回地址,并把return的返回值設(shè)置到方法返回地址中。
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;
    }
}

相關(guān)文章

最新評論