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.

pointers1.gif

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