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