Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

จะเข้าถึงองค์ประกอบของอาร์เรย์โดยใช้สัญกรณ์ตัวชี้ใน C # ได้อย่างไร


การใช้พอยน์เตอร์ใน C# จำเป็นต้องมีตัวแก้ไขที่ไม่ปลอดภัย นอกจากนี้ยังสามารถเข้าถึงองค์ประกอบอาร์เรย์ได้โดยใช้พอยน์เตอร์โดยใช้คีย์เวิร์ดคงที่ เนื่องจากชนิดข้อมูลอาร์เรย์และตัวชี้ไม่เหมือนกัน ตัวอย่างเช่น:ชนิดข้อมูล 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 ชี้ไปที่จุดเริ่มต้นของอาร์เรย์โดยใช้คีย์เวิร์ดคงที่ จากนั้นค่าอาร์เรย์ทั้งหมดจะแสดงโดยใช้ for loop ข้อมูลโค้ดสำหรับสิ่งนี้จะได้รับดังนี้ −

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