6 - Diziler - Bölüm 1: Sayısal Diziler
2024
Sözdizimi:
veri_tipi
: Dizinin saklayacağı verilerin tipi (int
, float
, char
vb.).dizi_adı
: Diziye verilen isim.dizi_boyutu
: Dizinin kaç eleman saklayacağını belirten bir tam sayı. Sabit dizilerde dizi boyutu, derleme zamanında belirlenir ve değiştirilemez.=
) kullanırız.Dikkat!
Bir dizinin boyutu ve türü, tanımlandıktan sonra değiştirilemez!
int sayilar[5] = { 1, 2, 3, 4, 5 };
// ucuncu elemanın degerini -1 yap
sayilar[2] = -1;// besinci elemanın degerini 0 yap
sayilar[4] = 0;
Dizi elemanlarının indislerini kullanarak yukarıdaki gibi değiştirebiliriz.
sizeof
Operatörü: Dizilerin Boyutunu Hesaplamasizeof
operatörü, bir değişkenin veya veri tipinin bellekte kapladığı bayt sayısını döndürür.dizi_boyutu = sizeof(dizi) / sizeof(dizi[0])
#include <stdio.h>
int main() {
int sayilar[] = {10,20,30,40,50};
int dizi_boyutu = sizeof(sayilar) / sizeof(sayilar[0]);
printf("Dizinin boyutu: %d\n", dizi_boyutu);
}
sayilar
bellekte 20 baytlık bir alanda saklansın. Bu dizi içerisindeki ilk eleman yani 10
sayısı 4 bayt’lık yer kaplıyorsa. 20 / 4 = 5
sonucunu verecektir. Yani sayilar
dizisi 5
elemanlıdır diyebileceğiz.
sizeof
Operatörü: Kullanım Alanlarısizeof
ile dizinin eleman sayısını bulma işlemi, özellikle bir dizinin uzunluğuna göre işlemler yaparken veya bir döngüde tüm elemanları işlemek gerektiğinde kullanışlıdır.
Bu yöntemle, dizinin uzunluğunu elde etmek için ek bir değişken veya sabit kullanmak zorunda kalmazsınız, yani dizinin uzunluğu doğrudan program içinde dinamik olarak belirlenir.
Ancak bu yöntemin bazı sınırlamaları da vardır. İşte kullanım alanları ve dikkat edilmesi gereken noktalar:
Eğer bir diziyi baştan sona dolaşmak istiyorsanız, dizinin boyutunu hesaplayarak döngüyü bu uzunluk kadar çalıştırabilirsiniz.
sizeof
operatörü ile dizinin uzunluğunu hesaplayarak bir fonksiyona bu değeri gönderebilirsiniz. Bu sayede fonksiyon, dizinin boyutunu bilerek işlem yapabilir.
Dikkat!
Dizilerle çalışırken, dizinin boyutunu aşan bir indekse erişmeye çalışmak, dizi sınırları dışına çıkma hatasına (out of bounds error) neden olur. Bu, programın çökmesine veya beklenmedik sonuçlar üretmesine yol açabilir. Bu yüzden, dizilerle çalışırken indeks değerlerine dikkat etmek çok önemlidir.
Bu örnekte, sayilar
dizisi 5 eleman içerir (indeksleri 0’dan 4’e kadardır). sayilar[5]
ifadesi, dizinin sınırları dışında bir elemana erişmeye çalıştığı için hata oluşturacaktır.
Dizilerle çalışırken döngü kullanıyorsanız, döngü koşulunuzu dizinin boyutuna göre doğru bir şekilde ayarlamalısınız. Örneğin, 5 elemanlı bir dizi için döngü koşulu i < 5
olmalıdır.
int sayilar[5] = { 1,2,3,4,5 };
şeklindeki sayilar dizisindeki tek sayıların toplamını hesaplayan kodu döngü kullanarak yazın.veri_tipi dizi_adı[boyut];
{değer1, değer2, ...}
sizeof
: Dizinin boyutunu bayt cinsinden verir.