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

Làm cách nào để truy cập các phần tử của mảng bằng con trỏ trong C #?

Trong C #, một tên mảng và một con trỏ đến một kiểu dữ liệu giống như dữ liệu mảng, không phải là cùng một kiểu biến. Ví dụ, int * p và int [] p, không cùng kiểu. Bạn có thể tăng giá trị biến con trỏ p vì nó không cố định trong bộ nhớ nhưng địa chỉ mảng được cố định trong bộ nhớ và bạn không thể tăng giá trị đó.

Đây là một ví dụ -

Ví dụ

using System;

namespace UnsafeCodeApplication {
   class TestPointer {
      public unsafe static void Main() {
         int[] list = {5, 25};
         fixed(int *ptr = list)

         /* let us have array address in pointer */
         for ( int i = 0; i < 2; i++) {
            Console.WriteLine("Address of list[{0}]={1}",i,(int)(ptr + i));
            Console.WriteLine("Value of list[{0}]={1}", i, *(ptr + i));
         }
         Console.ReadKey();
      }
   }
}

Đầu ra

Đây là kết quả -

Address of list[0] = 31627168
Value of list[0] = 5
Address of list[1] = 31627172
Value of list[1] = 25