Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Cách truy cập phần tử mảng bằng con trỏ trong C#?

Trong C#, tên mảng và con trỏ đến kiểu dữ liệu giống với 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 biến con trỏ p vì nó không cố định trong bộ nhớ, nhưng địa chỉ mảng là cố định trong bộ nhớ và bạn không thể tăng nó.

Ví dụ

using System; 
namespace UnsafeCodeApplication { 
    class TestPointer { 
        public unsafe static void Main() { 
            int[] list = {5, 25}; 
            fixed(int *ptr = list) 
            /* lấy địa chỉ mảng vào con trỏ */ 
            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(); 
        } 
    } 
}

Kết quả

Đây là đầu ra:

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