Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

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

이제 위의 프로그램을 이해합시다.

배열에는 int 유형의 값이 10개 있습니다. 포인터 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));
}