CodeBlanks Logo Icon CodeBlanks

Struct dizisi

  • C kursu
  • Başlangıç
  • Ders 97/116
  • 5 dk

Struct dizisi oluşturmayı ve döngüyle gezmeyi öğrenirsin.

struct dizisi

Bir struct türünden dizi tanımlayabilirsin. Bu, birden fazla kaydı tek bir yapı içinde yönetmek için idealdir.

struct Point points[3] = {
    {1, 2},
    {3, 4},
    {5, 6}
};

Burada points üç struct Point içerir. Her eleman kendi içinde x ve y taşır. points[0].x ile ilk noktanın x üyesine erişirsin. Döngü ile tüm noktaları gezebilirsin.

Döngü ile struct dizisi

Bir for döngüsü ile struct dizisinin tüm elemanlarını gezebilirsin. Her eleman için üye erişimi [i].üye biçiminde yapılır.

for (int i = 0; i < 3; i++) {
    printf("%d %d\n",
        points[i].x,
        points[i].y);
}

Burada i 0'dan 3'e kadar gider; her adımda bir noktanın koordinatları yazılır. points[i].x zinciri önce dizinin i. elemanını alır, sonra onun x üyesine gider. Bu desen, veri tablolarını işlemek için standarttır.

Uygulama Üç noktayı yazdır

struct Point tanımla (int x, int y). main içinde üç noktalı bir dizi oluştur: {{1, 2}, {3, 4}, {5, 6}}. Bir for döngüsü ile her noktayı printf ile yazdır.

Başlangıç kodu

main.c
#include <stdio.h>

struct Point { int x; int y; };

int main(void) {
    /* üç Point'ten oluşan bir dizi tanımla; for döngüsü ile printf ile yazdır */
    return 0;
}

Örnek çözüm

main.c
struct Point points[3] = {{1, 2}, {3, 4}, {5, 6}};
for (int i = 0; i < 3; i++) {
    printf("%d %d\n", points[i].x, points[i].y);
}

Beklenen çıktı

1 2
3 4
5 6

Soru ve cevaplar

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

1 points[1].x ifadesi neyi ifade eder?

  • Dizinin 1. elemanının x üyesi
  • İlk elemanın x üyesi Doğru cevap
  • Bir Point işaretçisi
  • Dizinin tüm x üyeleri

Açıklama: points[1] ikinci eleman; .x onun x üyesi.

2 İfade ve anlam eşleştir

Kavram Anlamı
points[0] İlk eleman
points[2] Üçüncü eleman
points[i].x i. elemanın x üyesi
points[3] Sınır dışı

3 Boşluğu doldur: dizi elemanı erişimi

Soru
printf("%d
", points____);
Cevap
printf("%d
", points[0].x);

Açıklama: points[0].x ile ilk elemanın x üyesi alınır.

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