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
.