在C#中,二維數(shù)組其實(shí)是一個以數(shù)組為元素的數(shù)組,因此可以使用指針來傳遞二維數(shù)組參數(shù)。以下是一個示例代碼:
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();
}
}
}
}
}
在上面的示例中,我們定義了一個二維數(shù)組 arr
,然后通過 fixed
關(guān)鍵字將其指針 p
固定在內(nèi)存中。然后通過指針的算術(shù)運(yùn)算訪問二維數(shù)組的元素,并打印出數(shù)組的內(nèi)容。
需要注意的是,在使用指針操作數(shù)組時,需要在代碼中添加 unsafe
關(guān)鍵字,因?yàn)檫@樣的代碼是不安全的,可能會導(dǎo)致內(nèi)存訪問越界等問題。