4. Mám ukazovateľ, čo s ním?
4.4 Základné operácie s ukazovateľmi
Ukazovateľ samozrejme nemusí ukazovať stále na tú istú
premennú. Ukazovatele sa môžu meniť tak, že v rôznych časových
okamihoch ukazujú na rôzne premenné (ktoré musia byť samozrejme
rovnakého typu). Premenné môžu mať taktiež viacero ukazovateľov, ktoré
v danom momente na ne ukazujú. Zmeny ukazovateľov sa uskutočňujú
pomocou príkazu priradenia.
Hodnotu jedného ukazovateľa môžeme preto bez problémov
priradiť inému ukazovateľu. Tieto však musia byť rovnakého typu. Oba
budú potom obsahovať rovnakú adresu, čiže budú ukazovať na tú istú
premennú.
Nech p a q sú ukazovatele rovnakého typu. Na obrázku je znázornená situácia pred a po vykonaní priraďovacieho príkazu p = q; |
|
Výsledkom takéhoto priradenia je zmena hodnoty p tak, aby pointer p ukazoval na rovnakú premennú ako q (p a q majú teraz rovnakú hodnotu). |
Úplne iný význam má príkaz *p = *q; Týmto príkazom sa nezmení hodnota ukazovateľa p, ale hodnota premennej, na ktorú p ukazuje. Tejto premennej sa priradí hodnota premennej, na ktorú ukazuje pointer q. Situácia je opäť znázornená na obrázku: |
|
Rozdiel medzi ukazovateľom p a objektom, na ktorý ukazuje, t.j. *p je veľmi dôležitý. Ak používame príkazy priradenia, musíme si byť istí, že používame objekty zodpovedajúceho typu. |
|