headerphoto

Ukazatel

K pokročilému programování v jazyce C patří práce s ukazately. Můžeme je použít jako parametry ve funkcích, při práci s polem, při dynamické alokaci paměti atd.

Ukazatel je proměnná jako ostatní, pouze hodnota v ní uložená má jiný význam, než jsme byli zvyklí dosud. V jazyce C je ukazatel přísně typový, t.j. deklarujeme ho jako ukazatel na určitý datový typ. Obsahem ukazatele je adresa v paměti. Při práci s ukazatelem nás ve většině případů zajímá hodnota, uložená na dané adrese.

Proměnná uk je ukazatel. Hodnota v něm uložená je 25. Jedná se o adresu, na které je uložená hodnota, se kterou budeme dále pracovat. Na absolutní adrese 25 je hodnota 18. Ukazatel uk ukazuje na hodnotu 18, ale sám má hodnotu 25.

Poznámka: Absolutní adresa proměnné uk není pro nás v programu většinou důležitá.

Příklady deklarace ukazatelů:

int *uk1, cislo = 5;  //ukazatel na cele cislo
float *uk2;        //ukazatel na realnou hodnotu
FILE *f;          //promenna pro praci se souborem

Ukazatel po své deklaraci neukazuje na žádnou proměnnou, je třeba ho nastavit, jinak s ním nesmíme pracovat. Nastavení ukazatele můžeme provést např. adresním operátorem následovně:

uk = &cislo;

Uvedený příkaz nastaví hodnotu ukazatele uk1 na adresu proměnné cislo. Pokud chceme pracovat s hodnotou, na kterou ukazatel ukazuje (v našem případě 5), použijeme v programu zápis *uk1.

V jazyce C je v stdio.h definována konstanta NULL, která představuje prázdný (nulový) ukazatel. Můžeme ho použít při testování ukazatelů.

Design downloaded from Free Templates - your source for free web templates