Kurz programování v C/Ukazatele

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

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