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. |
|