Katsotaanpa, miten osoitimia käytetään C-ohjelmointikielessä.
Käsittelemme kahta muuttujaa:
aptr
Tapaamme myös kaksi avainmerkkiä:
- where would return the address location of variable - where means follow the memory address stored in ptr and set that location to 8
Oletetaan, että a sijaitsee osoitteessa 0x8130 muistissa ja ptr kohdassa 0x8134; oletetaan myös, että tämä on 32-bittinen kone siten, että int on 32-bittinen Koko on seuraava, mikä olisi muistissa, kun seuraava koodinpätkä on suoritettu:
int a = 5;int *ptr = NULL;
| Osoite | Sisältö |
|---|---|
| 0x8130 | 0x00000005 |
| 0x8134 | 0x00000000 |
(Tässä esitetty NULL-osoitin on 0x00000000.) Määrittämällä a -osoitteen ptr:
ptr = &a;
tuottaa seuraavat muistiarvot:
| Osoite | Sisältö |
|---|---|
| 0x8130 | 0x00000005 |
| 0x8134 | 0x00008130 |
Sitten viittaamalla ptr koodaamalla:
*ptr = 8;
tietokone ottaa ptr (joka on 0x8130) sisältö, ”etsi” kyseinen osoite ja määritä sijaintiin 8 seuraava muisti:
| Osoite | Sisältö |
|---|---|
| 0x8130 | 0x00000008 |
| 0x8134 | 0x00008130 |
Selvästi a -sivuston käyttäminen tuottaa arvon 8, koska edellinen käsky muutti
osoittimen avulla ptr.