10
Tömbök Csernoch Mária

Tömbök

Embed Size (px)

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 Presentation

Citation preview

Page 1: Tömbök

Tömbök

Csernoch Mária

Page 2: Tömbök

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];

Page 3: Tömbök

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]

Page 4: Tömbök

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

Page 5: Tömbök

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

Page 6: Tömbök

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

Page 7: Tömbök

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)

Page 8: Tömbök

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

Page 9: Tömbök

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}};

Page 10: Tömbök

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