如何在C#中使用指针符号访问数组的元素?

在C#中使用指针需要使用unsafe修饰符。此外,还可以使用指针使用fixed关键字访问数组元素。这是因为数组和指针数据类型不同。例如:数据类型int []与int *不同。

给出了一个演示如何使用指针访问数组元素的程序,如下所示。

示例

using System;
namespace PointerDemo {
   class Example {
      public unsafe static void Main() {
         int[] array = {55, 23, 90, 76, 9, 57, 18, 89, 23, 5};
         int n = array.Length;
         fixed(int *ptr = array)
         for ( int i = 0; i < n; i++) {
            Console.WriteLine("array[{0}] = {1}", i, *(ptr + i));
         }
      }
   }
}

输出结果

上面程序的输出如下。

array[0] = 55
array[1] = 23
array[2] = 90
array[3] = 76
array[4] = 9
array[5] = 57
array[6] = 18
array[7] = 89
array[8] = 23
array[9] = 5

现在让我们了解上面的程序。

该数组包含10个int类型的值。指针ptr使用fixed关键字指向数组的开头。然后使用for循环显示所有数组值。为此的代码片段如下-

int[] array = {55, 23, 90, 76, 9, 57, 18, 89, 23, 5};
int n = array.Length;
fixed(int *ptr = array)
for ( int i = 0; i < n; i++) {
   Console.WriteLine("array[{0}] = {1}", i, *(ptr + i));
}