Bu nedenle array verisine pointer kullanarak erişmek istiyorsak, C ve C++'daki gibi fixed keywordünü kullanmamız gerekir. Aşağıdaki gibi bir örnekle açıklamaya çalışalım.
using System;
namespace UnsafeCodeApp
{
class TestPointerCls
{
public unsafe static void Main()
{
int[] list = {10, 100, 200};
fixed(int *ptr = list)
for ( int i = 0; i < 3; i++)
{
Console.WriteLine("Address of list[{0}]={1}",i, (int)(ptr + i));
Console.WriteLine("Value of list[{0}]={1}", i, *(ptr + i));
}
Console.ReadKey();
}
}
}
Yukarıdaki kod compile edilip çalıştırıldığında aşağıdaki gibi bir çıktı verecektir. Main metodunun pointerları çalıştırabilmesi için unsafe tanımladığına dikkat edelim.
Address of list[0] = 31627168
Value of list[0] = 10
Address of list[1] = 31627172
Value of list[1] = 100
Address of list[2] = 31627176
Value of list[2] = 200
Alıntı
Hiç yorum yok:
Yorum Gönder