Pole je další ze základních datových typů, stejně jako řetězec. Pole si lze představit, jako skupinu hodnot, stejného datového typu. Například pole čísel je tedy skupina hodnot datového typu int.

<aside> ☝ array souvisí také s pointery, tato část je vysvětlena na jim věnované stránce - Pointery v jazyce C

</aside>

<aside> 💡 Pro jednoudšší pochopení pole lze využít základy jazyk PHP a Pole, Asociativní pole

</aside>

Pole se nazývá anglicky array a tento název se bude používat vždy, když se bavíme o poli. Pokud bychom chtěli v klasickém kódu napsat více hodnot jako číslo, musíme použít více proměnných. Vypadalo by to nějak takto:

int num1 = 34;
int num2 = 23;
int num3 = 45;
int num4 = 1;
// ... a další proměnné

Tento zápis není špatně a fungoval by v pořádku, ovšem proč vytvářet pořád proměnné, když můžeme definovat zrovna array těchto hodnot. Takový zápis by vypadal takto:

int nums[] = {34, 23, 45, 1, ...}; // ... značí pokračování čísel

Pokud se podíváme pozorně na rozdíl v zápisu, zjistíme, že jsme místo 4 řádků jsme použili pouze jeden. Tento styl nám zjednoduší orientaci v kódu a taktéž pořádek.

Pokud pracujeme s polem stačí v jazyku c určit proměnnou, stejně jako v případě obyčejných proměnných, ale přidáme hranaté závorky [] za název naší proměnné. Následně místo jedné hodnoty za =, zapíšeme více hodnot oddělených čárkou do složených závorek {34, 23, ...}.

<aside> 👉 POZOR! Hodnoty ve {} musí být stejného datového typu, který jsme určili před názvem proměnné!

</aside>

Označení prvků v array

Každý prvek uvnitř array (hodnota = value) má svůj tzv. index někdy označován také jako key. Jedná se o číselné označení dané pozice prvku uvnitř pole. Toto označení je od 0 - n-1. n značí celkový počet prvků, proto musíme mít poslední pozici když číslujeme od 0 o jedno menší.

<aside> 👉 POZOR! index prvku vždy začíná od 0 do n-1.

</aside>

int nums[] = {34, 23, 45, 1}; // Námi definované pole

Tabulka níže popisuje jednotlivé hodnoty (value) na daném indexu

index value
0 34
1 23
2 45
3 1

Číslování je stejné jako když pracujeme s cyklem. Pole lze cyklit, proto se vždy v cyklu for a dalších cyklech objevuje int i = 0; jelikož tím zrovna označujeme první index v poli pole.

<aside> 👉 ZOPAKOVAT!

</aside>

Jak se přistupuje k proměnným uvnitř array

<aside> ☝ Před pokračováním si zopakujte Proměnné v jazyce C.

</aside>

int nums[] = {34, 23, 45, 1}; // Námi definované pole

Pokud chceme získat hodnotu na indexu 0, přistoupíme k ní pomocí hranatých závorek [] podobně jako při definování samotného pole.

nums[0]; // získáme hodnotu na 0 indexu z array - 34
nums[3]; // získáme hodnotu na 3 indexu z array - 1
nums[4]; // nastane problém popsaný níže, tento index v našem poli neexistuje 

Stejným způsobem můžeme přistoupit i k dalším hodnotám uvnitř pole.

<aside> ⚠️ Pokud se budete snažit přistoupit k hodnotě, která v našem poli neexistuje, můžou nastat tyto situace:

</aside>