C programozás IV. lecke: Tömbök (Listák) kezelése



A programokban gyakran előfordul, hogy több azonos típusú adatot kell egyszerre tárolnunk és kezelnünk. Erre szolgálnak a tömbök, amelyek lehetővé teszik, hogy egyetlen változónév alatt több értéket tároljunk.

1. Bevezető: Mik azok a tömbök?

A C programozási nyelvben a tömbök (listák) olyan adatszerkezetek, amelyek több azonos típusú adat tárolására szolgálnak. Használatuk különösen hasznos például egy osztály tanulóinak jegyei, mérési adatok vagy nagyobb adatsorok kezelésekor.

A tömbök legfontosabb tulajdonságai:

• A tömb elemei a memóriában egymás után, folytonosan helyezkednek el.
• Minden elem egy saját indexszel rendelkezik.
• A C nyelvben az indexelés mindig 0-tól kezdődik.

2. Tömbök deklarálása és inicializálása

Tömb létrehozásakor meg kell adnunk az elemek adattípusát, valamint a tömb méretét. A statikus tömbök mérete fordításkor rögzített, ezért futás közben már nem módosítható.

#include <stdio.h>

int main() {
    // Deklaráció inicializálás nélkül (5 elem)
    int szamok[5];

    // Deklaráció és inicializálás egy lépésben
    int jegyek[5] = {5, 4, 3, 5, 2};

    // Részleges inicializálás
    int pontszamok[10] = {10, 20};

    // Automatikus méretmeghatározás
    int korok[] = {18, 21, 25, 30};

    return 0;
}


3. Elemek elérése és módosítása (Indexelés)

Egy tömb adott elemét a szögletes zárójelek [] segítségével érhetjük el. Nagyon fontos, hogy ne lépjük túl a tömb méretét, mert a C nyelv ezt futásidőben nem ellenőrzi automatikusan, ami memóriahibákhoz (buffer overflow) vezethet.

// Az első elem módosítása (0. index)
jegyek[0] = 4;

// A harmadik elem kiíratása (2. index)
printf("A harmadik diák jegye: %d\n", jegyek[2]);


4. Tömbök bejárása ciklusokkal

A tömbök valódi előnye akkor mutatkozik meg, amikor ciklusokat használunk az összes elem feldolgozására. A leggyakrabban erre a for ciklust alkalmazzuk, amely gyorsan végighalad az összes indexen.

int i;
for(i = 0; i < 5; i++) {
    printf("A(z) %d. jegy: %d\n", i + 1, jegyek[i]);
}


5. Többdimenziós tömbök (Mátrixok)

A C nyelv támogatja a többdimenziós tömböket is. Ezek közül a leggyakoribb a kétdimenziós tömb, amelyet gyakran mátrixként emlegetünk. Segítségével táblázatos adatokat vagy kétdimenziós elrendezéseket modellezhetünk.

// 3x4-es mátrix (3 sor, 4 oszlop)
int matrix[3][4] = {
    {1, 2, 3, 4},
    {5, 6, 7, 8},
    {9, 10, 11, 12}
};

// Elem elérése: 2. sor, 3. oszlop
printf("Kiválasztott elem: %d\n", matrix[1][2]); // Eredmény: 7