Ohjelmointikäsitteet: Osoittimet

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.

Leave a Reply

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *