用於陣列訪問的指標

此示例演示瞭如何將指標用於對 C#陣列的類 C 訪問。

unsafe
{
    var buffer = new int[1024];
    fixed (int* p = &buffer[0])
    {
        for (var i = 0; i < buffer.Length; i++)
        {
            *(p + i) = i;
        }
    }
}

unsafe 關鍵字是必需的,因為指標訪問不會發出通常在以常規方式訪問 C#陣列時發出的邊界檢查。

fixed 關鍵字告訴 C#編譯器發出指令以異常安全的方式固定物件。需要固定以確保垃圾收集器不會將陣列移動到記憶體中,因為這會使指向陣列內的任何指標無效。