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

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

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

棧的變化規(guī)則:

1、方法調(diào)用會(huì)導(dǎo)致棧的生長(zhǎng),具體包括兩個(gè)步驟:一、插入方法返回地址(下圖中的Fn:);二、將實(shí)際參數(shù)按值(可以使用ref或out修飾)拷貝并插入到棧中(可以使用虛參數(shù)訪問(wèn))。
2、遇到局部變量定義會(huì)向棧中插入局部變量。
3、遇到return語(yǔ)句會(huì)導(dǎo)致棧消亡,一直消亡到方法返回地址,并把return的返回值設(shè)置到方法返回地址中。
4、這里先不考慮中括號(hào)導(dǎo)致的棧的消亡。



復(fù)制代碼 代碼如下:

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)文章

最新評(píng)論