c#棧變化規(guī)則圖解示例(棧的生長與消亡)
棧的變化規(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;
}
}
- c# 通過代碼開啟或關(guān)閉防火墻
- c# 防火墻添加/刪除 特定端口的示例
- C#用遞歸算法實現(xiàn):一列數(shù)的規(guī)則如下: 1、1、2、3、5、8、13、21、34,求第30位數(shù)是多少
- C#創(chuàng)建不規(guī)則窗體的4種方式詳解
- C#常用的命名規(guī)則匯總
- c#圖片處理之圖片裁剪成不規(guī)則圖形
- 正則表達式語法規(guī)則及在Javascript和C#中的使用方法
- c# 給button添加不規(guī)則的圖片以及用pictureBox替代button響應(yīng)點擊事件的方法
- C# 命名規(guī)則(挺不錯的)
- C# 設(shè)置防火墻的創(chuàng)建規(guī)則
相關(guān)文章
WinForm窗體調(diào)用WCF服務(wù)窗體卡死問題
在Winform窗體中調(diào)用部署在其他服務(wù)器中的WCF服務(wù)時,由于調(diào)用服務(wù)需要一定時延,因此窗體在這段時間一直卡住不能進行其他操作2012-12-12C#實現(xiàn)Array,List,Dictionary相互轉(zhuǎn)換
這篇文章介紹了C#實現(xiàn)Array,List,Dictionary互相轉(zhuǎn)換的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-04-04