CodeBlanks Logo Icon CodeBlanks

Dizi boyutu

  • C kursu
  • Başlangıç
  • Ders 55/116
  • 3 dk

sizeof ile dizi boyutunu hesaplamayı öğrenirsin.

sizeof ile dizi boyutu

C'de dizinin uzunluğunu doğrudan veren bir operatör yoktur. Ama sizeof ile hem dizinin toplam baytını hem de bir elemanın baytını öğrenebilirsin; bölümüm uzunluğu verir.

int scores[5] = {85, 92, 78, 90, 88};
int size = sizeof(scores) / sizeof(scores[0]);
printf("%d\n", size);  // 5

Burada sizeof(scores) 20 bayttır (5 × 4), sizeof(scores[0]) 4 bayttır. Bölüm 5 verir. Bu deyim döngü sınırı için kullanışlıdır.

Döngü sınırı olarak sizeof

sizeof deyimini döngü sınırı olarak kullanmak dizinin boyutunu sabit kodlamaktan daha güvenlidir. Boyutu sonradan değiştirirsen döngü otomatik uyum sağlar.

int scores[5] = {85, 92, 78, 90, 88};
int n = sizeof(scores) / sizeof(scores[0]);
for (int i = 0; i < n; i++) {
    printf("%d\n", scores[i]);
}

Bu yazım tarzı kod bakımını kolaylaştırır. Diziyi 10 elemana çıkarsan döngü de 10'a döner. Elle 5 yazsaydın güncellemeyi unutabilirdin.

Uygulama Dizi uzunluğunu yazdır

Bir C programı yaz. int scores[5] = {85, 92, 78, 90, 88}; tanımla. int n = sizeof(scores) / sizeof(scores[0]); ile uzunluğu hesapla. printf("%d\n", n); ile yazdır. #include <stdio.h> başta olsun.

Başlangıç kodu

main.c
#include <stdio.h>

int main(void) {
    // scores tanımla, sizeof ile uzunluğu hesapla ve yazdır
    return 0;
}

Örnek çözüm

main.c
#include <stdio.h>

int main(void) {
    int scores[5] = {85, 92, 78, 90, 88};
    int n = sizeof(scores) / sizeof(scores[0]);
    printf("%d\n", n);
    return 0;
}

Beklenen çıktı

5

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 sizeof parçalarını eşleştir

Kavram Anlamı
sizeof(scores) Toplam bayt
sizeof(scores[0]) Tek eleman bayt
sizeof(int) Türün baytı
/ sizeof Bölüm

2 int scores[5] için sizeof(scores) kaç bayt?

main.c
int scores[5];
sizeof(scores);
  • 4
  • 5
  • 10
  • 20 Doğru cevap

Açıklama: 5 int × 4 bayt = 20.

3 Uzunluk deyimini tamamla

Soru
int n = sizeof(scores) / sizeof(____);
Cevap
int n = sizeof(scores) / sizeof(scores[0]);

Açıklama: scores[0] tek eleman baytını verir.

Başlangıç bölümündeki tüm dersler