Tömbök Csernoch Mária
Egydimenziós tömbök egydimenziós tömbök (vektorok) deklarálása típus név[méret] méret konstans a tömbben tárolható elemek számát definiálja példák egydimenziós tömbök deklarálására int a[5]; float b[20]; tömb méretének megadása makróval: char c[N]; #define N 100; char c[N];
Tömbök a tömb elemei azonos típusúak tömb elemeinek indexelése 0-tól (méret − 1)-ig hivatkozás tömb elemre pl.: a[0], b[5] a[0] 1 a[1] 4 a[2] 9 a[3] 16 a[4] int a[5] tömb dekl. a tömb neve a: a[0] a[1] a[2] a[3] a[4]
Egydimenziós tömbök inicializálása int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; char szo[15] = {‘a’, ‘l’, ‘m’, ‘a’}; tárolási osztálytól függően 0 v. határozatlan float valosak[ ] = {23.5, 49.2, 3.45}; a tömb automatikusan 3 eleműre definiálódik int a[5] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; helytelen, túl sok a kezdőérték C semmilyen ellenőrzést nem végez a tömb indexeire vonatkozóan indexhatár átlépése veszélyes
Tömbök és pointerek egy tömb neve nulladik elemének címe (pointer konstans, amely a tömb 0-dik elemére mutat) int a[5]; int *p; p = &a[0]; // a mutatót a tömb első elemére irányítjuk p = a; vagy int a[5], *p = a; p+1 p+2 p+3 p+4 p: a: a[0] a[1] a[2] a[3] a[4]
Tömbök és pointerek A tömb 0-dik elemének a címe a &a[0] A tömb i-edik elemének címe a + i &a[ i ] &p[ i ] a + i p + i Különbség ‘p’ és ‘a’ között, hogy ‘a’ konstans, ‘p’ változó p = a; // helyes p++; // helyes a = p; // hibás a++; // hibás
Tömbök és pointerek A tömb 0-dik eleme A tömb i-edik eleme a[0] p[0] a[ i ] p[ i ] *(a + i) *(p + i)
Többdimenziós tömbök Általános alak Kétdimenziós tömbök (mátrixok) típus név [méret1] [méret2] … [méretn]; Kétdimenziós tömbök (mátrixok) típus név [méret1] [méret2] méret1: tömb sorainak száma méret2 tömb oszlopainak száma
Kétdimenziós tömbök inicializálása int matrix [3] [5] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}; int matrix [3] [5] = {{1, 2, 3, 4, 5} {6, 7, 8, 9, 10}, {11, 12, 13, 14, 15}};
Kétdimenziós tömbök elemeinek elérése Sorok címe: s/o 1 2 3 4 matrix[0] 5 matrix[1] 6 7 8 9 10 matrix[2] 11 12 13 14 15 matrix [2] [3]