在C#中,二維數組其實是一個以數組為元素的數組,因此可以使用指針來傳遞二維數組參數。以下是一個示例代碼:
using System;
class Program
{
static void Main()
{
int[,] arr = new int[3, 3] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
PrintArray(arr);
}
static void PrintArray(int[,] arr)
{
unsafe
{
fixed (int* p = &arr[0, 0])
{
for (int i = 0; i < arr.GetLength(0); i++)
{
for (int j = 0; j < arr.GetLength(1); j++)
{
Console.Write(*(p + i * arr.GetLength(1) + j) + " ");
}
Console.WriteLine();
}
}
}
}
}
在上面的示例中,我們定義了一個二維數組 arr
,然后通過 fixed
關鍵字將其指針 p
固定在內存中。然后通過指針的算術運算訪問二維數組的元素,并打印出數組的內容。
需要注意的是,在使用指針操作數組時,需要在代碼中添加 unsafe
關鍵字,因為這樣的代碼是不安全的,可能會導致內存訪問越界等問題。