在C#中,fixed
關(guān)鍵字用于固定變量的內(nèi)存地址,從而防止垃圾回收器移動它
下面是一個簡單的示例,演示了如何使用fixed
關(guān)鍵字:
using System;
class Program
{
static unsafe void Main()
{
// 創(chuàng)建一個整數(shù)數(shù)組
int[] numbers = { 1, 2, 3, 4, 5 };
// 使用fixed關(guān)鍵字固定數(shù)組的內(nèi)存地址
fixed (int* ptr = numbers)
{
// 使用指針訪問數(shù)組元素
for (int i = 0; i< numbers.Length; i++)
{
Console.WriteLine("Element {0} is at address {1}", i, (IntPtr)(ptr + i));
}
}
}
}
在這個示例中,我們首先創(chuàng)建了一個整數(shù)數(shù)組。然后,我們使用fixed
關(guān)鍵字固定數(shù)組的內(nèi)存地址,并將其分配給一個指針變量ptr
。接下來,我們使用指針遍歷數(shù)組并打印每個元素的地址。
需要注意的是,為了使用fixed
關(guān)鍵字和指針,你需要在代碼文件的開頭添加unsafe
關(guān)鍵字,并確保在項目設(shè)置中啟用“允許不安全代碼”選項。