110 likes | 279 Views
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];
E N D
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]
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;
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
A tömb 0-dik eleme a[0] p[0] *(a + 0) *(p + 0) *a *p A tömb i-edik eleme a[ i ] p[ i ] *(a + i) *(p + i) Tömbök és pointerek
Többdimenziós tömbök • Általános alak • 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 • matrix [2] [3]