在C#中,fixed
關鍵字用于固定變量的內存地址
fixed
語句的一般形式如下:
fixed (type* variable = expression)
{
// 代碼塊
}
其中,type*
表示指向類型為type
的指針,variable
是指向expression
的指針變量。在fixed
語句塊中,你可以使用指針變量variable
來操作原始數據結構。
例如,以下代碼演示了如何使用fixed
關鍵字獲取整數數組的指針并修改數組元素:
using System;
class Program
{
static unsafe void Main()
{
int[] numbers = { 1, 2, 3, 4, 5 };
fixed (int* ptr = numbers)
{
for (int i = 0; i< numbers.Length; i++)
{
*(ptr + i) = *(ptr + i) * 2;
}
}
foreach (int number in numbers)
{
Console.WriteLine(number);
}
}
}
在這個例子中,我們首先創建了一個整數數組numbers
。然后,我們使用fixed
關鍵字獲取數組的指針,并將每個元素乘以2。最后,我們使用foreach
循環輸出修改后的數組元素。
需要注意的是,fixed
關鍵字只能在unsafe
上下文中使用,因此需要在方法或類型聲明中添加unsafe
關鍵字。此外,fixed
關鍵字通常與指針操作一起使用,因此需要對指針有一定的了解。