Přeskočit na obsah

Kurz programování v C/Ukazatele

Z Wikiknih

Ukazatel, anglicky pointer, je datový typ, který ale na rozdíl od běžných proměnných neslouží k uchovávání dat, ale k uchovávání adres.

Základní práce

[editovat | editovat zdroj]

Ukazatel se definuje podobným způsobem jako proměnné, jediný rozdíl je v tom že se před název přidá znak hvězdičky (*).

Adresa je číslo v paměti, které nelze zaměnit s jinou adresou. Značíme jej pomocí &.

Ukazatel se dá chápat jako prst, který ukazuje na nějaké místo v paměti. Značíme jej pomocí *.

Deklarace proměnných:

int a;
int b;
int *p;

V tuto chvíli si můžeme paměť představit jako tři nezávislé paměťové buňky. Rozdíl mezi a, b a p je v tom, že do p se ukládají adresy a ne data.

a = 55;
b = 31;

Do proměnné (ukazatele) p se uloží adresa proměnné a.

p = &a;


číslo a má v paměťové buňce 0x45A1 hodnotu 55


číslo b má v paměťové buňce 0x45B4 hodnotu 31


do proměnné p se uloží číslo a z paměťové buňky 0x45A1, což je prázdná množina


do proměnné p se uloží číslo a z paměťové buňky 0x45A1, což je 55


do proměnné p se uloží číslo a z paměťové buňky 0x45A1, což je 84


do proměnné p se uloží číslo a z paměťové buňky 0x45A1, což je 31