tömbök
DESCRIPTION
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]; - PowerPoint PPT PresentationTRANSCRIPT
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]
0 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;a:
a[0] a[1] a[2] a[3] a[4]
p: p+1 p+2 p+3 p+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[0]– p[0]– *(a + 0)– *(p + 0)– *a– *p
• A tömb i-edik eleme– a[ i ]– p[ i ]– *(a + i)– *(p + i)
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]
Sorok címe: s/o 0 1 2 3 4
matrix[0] 0 1 2 3 4 5
matrix[1] 1 6 7 8 9 10
matrix[2] 2 11 12 13 14 15