Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys

5.5 Osoittimista ja indekseistä

Osoitinmuuttujaa voitaisiin kuvitella myös seuraavasti: Olkoon meillä osoitekirja ( osoitteet) jossa on sivuja:

sivu 0:

sivu 1:

sivu 2:
Kassinen Katto
Katto
3452

Susi Sepe
Takametsä
-

Ankka Aku
Ankkalinna
1234

Meidän osoitekirjamme on tavallaan taulukko osoittimista (tässä tapauksessa osoitteita, älä sotke termejä!). Taulukon osoitteet paikassa 1 (sivu 1) on osoite " Sepe Sudelle ". Mitä tapahtuu mikäli kirjoitamme kokonaan uuden henkilön osoitteen sivulla 1 olevan osoitteen päälle (sijoitetaan uusi arvo osoitinmuuttujalle osoitteet[1])?

sivu 1:
Batman
Gotham City
999

Mitä tapahtuu " Sepe Sudelle "? Tuskinpa sijoitus osoitekirjassamme siirtää " Sepe Sutta " yhtään mihinkään " Perämetsästä", tai tekee edes häntä murheelliseksi! Tämä on eräs tyypillinen virhekäsitys osoitinmuuttujia käytettäessä. Osoitinmuuttujaan sijoittaminen ei muuta tietenkään itse tiedon sisältöä. Mutta sijoittaminen siihen paikkaan johon osoitinmuuttuja osoittaa (esimerkissämme " Sepe Suden " asuntoon) muuttaa tietenkin myös itse tiedon sisältöä.

	// C++:lla
	sivu[1] = uusi_osoite;    // ei vaikuta Sepe Suteen
	*sivu[1] = uusi_henkilo;  // laittaa uuden henkilön Sepen osoitteeseen
	                          // = "tähdätään osoitetta pitkin"

Vastaavasti jos meillä on indeksimuuttuja nimeltä sivu, niin sijoitus muuttujalle

	sivu=2 

ei muuta mitenkään itse sivun sisältöä. Vasta sijoitus

	osoitteet[sivu]= 

muuttaisi sivun 2 sisältöä.


Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys