8.4.1 Miksi osoittimet?
C- kielessä osoittimet piti opetella heti ohjelmoinnin alussa, jos halusi
tehdä minkäänlaisia järkeviä aliohjelmia.
C++:ssa ongelmaa voidaan kiertää viitemuuttujien
(references)
avulla. Mutta vaikka emme osoittimia ihan välttämättä
parametrin välityksen takia enää tarvitsisikaan, opettelemme ne
seuraavaksi. Käytännössä niitä kuitenkin tarvitaan,
koska maailmassa on valtavasti valmista C- koodia, jonka
hyödyntämiseksi osoittimia joutuu joka tapauksessa
käyttämään. Lisäksi olio- ohjelmointi
pääsee C++:ssa täysiin oikeuksiinsa vasta olio- osoittimien ja
polymorfismin myötä. Ja kuten aiemmin todettiin, myös
taulukoiden läpikäynnissä osoittimet ovat käteviä.
Edellä
sanottiin, että &matka_mm on osoite muuttujaan
matka_mm. Tätä voitaisiin kuvata seuraavasti:
Kuva 8.1 Muistipaikan osoite
Reaali- ja kokonaislukujen lisäksi voidaan määritellä
myös muuttujia, jotka voivat saada osoite- arvoja. Tällaisia
muuttujia nimitetään osoittimiksi (eng. pointer,
vrt. sormet ja korttien lajittelu). Osoite- arvon saava muuttuja siis osoittaa
johonkin muistipaikkaan, eli muuttujaan. Muuttujiin voidaan sijoittaa arvoja
paitsi suoraan, niin myös epäsuorasti osoittimien avulla.