Computer >> Máy Tính >  >> Lập trình >> C#

Làm thế nào để truy cập các phần tử của một mảng bằng cách sử dụng ký hiệu con trỏ trong C #?


Việc sử dụng con trỏ trong C # yêu cầu công cụ sửa đổi không an toàn. Ngoài ra, các phần tử mảng có thể được truy cập bằng cách sử dụng con trỏ sử dụng từ khóa cố định. Điều này là do kiểu dữ liệu mảng và con trỏ không giống nhau. Ví dụ:Kiểu dữ liệu int [] không giống kiểu int *.

Một chương trình chứng minh việc truy cập các phần tử mảng bằng cách sử dụng con trỏ được đưa ra như sau.

Ví dụ

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

Đầu ra

Kết quả của chương trình trên như sau.

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

Bây giờ chúng ta hãy hiểu chương trình trên.

Mảng chứa 10 giá trị kiểu int. Con trỏ ptr trỏ đến đầu mảng bằng từ khóa cố định. Sau đó, tất cả các giá trị mảng được hiển thị bằng cách sử dụng vòng lặp for. Đoạn mã cho điều này được đưa ra như sau -

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