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