Bir dizi öğesine gönderme.
Dizilerin kullanışlılığının çoğu, öğelerine ayrı ayrı erişilebilmesinden gelir.
Bunu yapmanın yolu, öğeleri numaralandırmak için bir dizin kullanmaktır.
Dizin , belirli bir dizi öğesine işaret eden bir değerdir.
Unutmayın: C# dizi numaralandırması sıfırdan başlar.< br />
A dizisine erişim örnekleri:
int x = (A[3] + 5) * A[1] / / A[3] ve A[1] değerlerini oku
A[0] = x + 6 // A[0]'a yeni değer yaz
Dizi öğeleriyle çalışmak için programı inceleyelim.
int i = 1;
int[] A = yeni int[5]; // 5 elemanlı bir dizi oluştur
A[0] = 23; // dizinin 5 öğesinin her birine (0'dan 4'e kadar dizinler)
A[1] = 12; // belirli bir değer yaz
A[2] = 7;
A[3] = 43;
A[4] = 51;
A[2] = A[i] + 2*A[i-1] + A[2*i]; // indeksi 2 olan elemanın değerini ifadenin sonucuna değiştir
// çünkü i=1, sonra i değişkeninin değerini elde ettiğimiz ifadede değiştiriyoruz
// sonraki ifade A[2] = A[1] + 2*A[0] + A[2];
Console.Write((A[2] + A[4]));
Bu programın çalıştırılması sonucunda dizinin elemanlarının toplamının değeri index 2 ve index 4 ile birlikte 116 olarak ekranda görünecektir. Örnekten de görebileceğiniz gibi, dizinin herhangi bir öğesine erişebiliyoruz. Ayrıca gerekli eleman sayısını çeşitli formüller kullanarak hesaplayın (örneğin, A[i-1]
veya A[2*i]
programında olduğu gibi, bu durumlarda, eleman indeksleri hesaplanacak ve i değerine bağlı olacaktır.
Örnek bir programı inceleyelim.
int N = 5;
int[] A = yeni int[N];
int x = 1;
A[x + 4] = A[x] + A[2 * (x + 1)]; // ifadelerde ve hesaplamalarda x'i yerine koyduktan sonra
// sonraki satırı al A[5] = A[1] + A[4]
// A[5] böyle bir öğe yok
// hata - sınırların dışında dizi
Dizi 5 öğeyle bildirilir, bu da öğelerin 0'dan 0'a kadar numaralandırılacağı anlamına gelir. 4. 6. satırdaki programın var olmayan bir elemana gönderme yaptığını görüyoruz: A[5]
.
Programın dizinin sınırlarını aştığı ortaya çıktı.
Dizi taşması, dizide olmayan bir dizindeki öğeye erişimdir.
Bu gibi durumlarda, program genellikle bir çalışma zamanı hatası vererek çöker.