Toto je starší verze dokumentu!
Datový typ pole
Pole představuje jeden ze strukturovaných datových typů - ukládá pod jedním identifikátorem více hodnot. Hodnoty jsou v poli uloženy v řadě za sebou a jsou očíslované od 0 pomocí tzv. indexu. Všechny honoty v rámci jednoho pole mají jeden stejný datový typ.
Jednorozměrné pole
Nejzákladnější verze pole je jednorozměré, které si můžeme představit jako v následující ukázce:
+----+----+----+----+----+----+----+ | 13 | 41 | 5 | 17 | 8 | 6 | 14 | Hodnoty v poli +----+----+----+----+----+----+----+ 0 1 2 3 4 5 6 Indexy
Deklarace
Syntaxe deklarace pole vypadá následovně: datovy_typ identifikator[pocet_prvku];
, kde počet prvků musí být konstantní (být znám během překladu). Pole je po deklaraci neinicializované stejně jako v případě proměnných jednoduchých datových typů.
Příklad
int pole1[3]; // Pole tří celých čísel double pole2[5]; // Pole pěti čísel s plovoucí čárkou char pole3[10]; // Pole deseti znaků
Inicializace
Pole lze v rámci deklarace rovnou inicializovat seznamem hodnot. Pokud je zadáno méně hodnot, než je velikost pole, je zbytek doplněn nulami. Pokud je pole v rámci deklarace inicializováno, nemusí být uveden počet prvků - odvodí se z hodnot.
Příklad
int pole[4] = {1, 2, 3, 4}; // inicializace pole hodnotami 1, 2, 3, 4. char pole2[] = {'a', 'b', 'c', 'd', 'e', 'f'}; // inicializace bez uvedení počtu prvků
Práce s jednotlivými prvky pole
Pokud chceme z pole získat konkrétní hodnotu, musíme k tomu využít její index ve formátu identifikator[index]
. Prvky v poli můžeme číst i přepisovat (pokud není celé pole nastavené pouze pro čtení klíčovým slovem const
). Položky jsou indexované od 0.
Příklad
const int POCET = 3; int arr[POCET] = {1, 2, 3}; arr[0] = 42; arr[2] = 13; printf("Prvky pole jsou: %d, %d, %d.\n", arr[0], arr[1], arr[2]);
Vícerozměrná pole
TBA v rámci tématického plánu.