La oss se på hvordan pekere brukes i C-programmeringsspråket.
Vi skal håndtere to variabler:
aptr
Vi skal også møte to nøkkeltegn:
- where would return the address location of variable - where means follow the memory address stored in ptr and set that location to 8
Anta at a
ligger på adressen 0x8130 i minnet og ptr
ved 0x8134; antar også at dette er en 32-bits maskin slik at en int er 32-bits i størrelse. Følgende er hva som vil være i minnet etter at følgende kodebit er utført:
int a = 5;int *ptr = NULL;
Adresse | Innhold |
---|---|
0x8130 | 0x00000005 |
0x8134 | 0x00000000 |
(NULL-pekeren vist her er 0x00000000.) Ved å tildele adressen til a
til ptr
:
ptr = &a;
gir følgende minneverdier:
Adresse | Innhold |
---|---|
0x8130 | 0x00000005 |
0x8134 | 0x00008130 |
Deretter ved å referere ptr
ved å kode:
*ptr = 8;
tar datamaskinen innholdet av ptr
(som er 0x8130), «finn» den adressen og tilordne 8 til den plasseringen som gir følgende minne:
Adresse | Innhold |
---|---|
0x8130 | 0x00000008 |
0x8134 | 0x00008130 |
Åpenbart å få tilgang til a
vil gi verdien 8 fordi den forrige instruksjonen endret innholdet i
ved hjelp av pekeren ptr
.