如何在 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));
}

更新于: 2020 年 6 月 26 日

670 次浏览

职业生涯腾飞

完成课程并获得认证

立即开始
广告