2. Čo je to ukazovateľ?
Hneď na začiatku si musíme uvedomiť, že ukazovateľ (smerník, pointer)
nie je niečo tajomné, záhadné, pred čím by sme mali mať rešpekt, čoho
by sme sa mali obávať. Je to premenná ako každá iná, ibaže hodnota
uložená v tejto premennej má odlišný význam od hodnôt premenných, na
ktoré sme boli doposiaľ zvyknutí. Všetky údajové typy, okrem typu
ukazovateľ, totiž obsahujú konkrétne hodnoty - dáta. Údajový
typ ukazovateľ však uchováva iný typ informácie. Hodnota uložená v
premennej typu ukazovateľ je adresa, samotné dáta však neobsahuje.
A tento fakt je pre pochopenie ukazovateľov najdôležitejší.
Význam
termínov ukazovateľ, smerník a pointer je úplne rovnaký.
V nasledujúcom texte sa stretnete striedavo so všetkými tromi
pomenovaniami. Pri výklade sa budeme snažiť uprednostňovať slovenský
termín ukazovateľ, avšak v takých prípadoch, kde by použitie
slovenského termínu mohlo pôsobiť ťažkopádne sa prikloníme radšej ku
kratšiemu a pre "céčkarov" typickejšiemu názvu pointer.
Ukazovateľ je premenná, ktorej hodnotami sú pamäťové adresy.
Premenná typu ukazovateľ uchováva adresu určitého pamäťového miesta.
Alebo inými slovami, ukazovateľ "ukazuje na isté miesto" v pamäti
počítača. V podstate je to obyčajná premenná obsahujúca číslo, ktoré
predstavuje adresu nejakého pamäťového miesta, obyčajne inej premennej.
A až na tejto adrese sa ukrýva príslušná hodnota, na ktorú sme
boli doteraz zvyknutí. Objekt typu ukazovateľ teda obsahuje informáciu o tom, kde je umiestnený iný údajový objekt.
Keďže ukazovateľ obsahuje adresu objektu, pomocou neho
môžeme k objektu (premennej) pristupovať nepriamo. Priamy prístup
znamená prístup pomocou identifikátora premennej, tak ako to bežne
robíme.
Premenná ptr
je ukazovateľ. Hodnota ptr je cd45. Táto predstavuje adresu v pamäti,
na ktorej je uložená hodnota 12. Samotný ukazovateľ ptr je
v pamäti na adrese ab12. Môžeme teda povedať, že obsah adresy ab12
ukazuje na adresu cd45 a na tejto adrese je uložená hodnota 12.
ptr je ukazovateľ, *ptr je premenná, na ktorú ukazuje
|