Lad os se på, hvordan markører bruges i C-programmeringssprog.
Vi skal håndtere to variabler:
aptr
Vi møder også to nøglepersoner:
- where would return the address location of variable - where means follow the memory address stored in ptr and set that location to 8
Antag at a er placeret på adresse 0x8130 i hukommelsen og ptr ved 0x8134; antag også, at dette er en 32-bit maskine, således at en int er 32-bit i størrelse. Følgende er, hvad der ville være i hukommelsen, efter at følgende kodestykke er udført:
int a = 5;int *ptr = NULL;
| Adresse | Indhold |
|---|---|
| 0x8130 | 0x00000005 |
| 0x8134 | 0x00000000 |
(NULL-markøren vist her er 0x00000000.) Ved at tildele adressen til a til ptr:
ptr = &a;
giver følgende hukommelsesværdier:
| Adresse | Indhold |
|---|---|
| 0x8130 | 0x00000005 |
| 0x8134 | 0x00008130 |
Derefter ved derferference ptr ved kodning:
*ptr = 8;
tager computeren indholdet af ptr (hvilket er 0x8130), “lokaliser” den adresse og tildel 8 til den placering, hvilket giver følgende hukommelse:
| Adresse | Indhold |
|---|---|
| 0x8130 | 0x00000008 |
| 0x8134 | 0x00008130 |
Det er klart, at adgang til a giver værdien 8, fordi den tidligere instruktion ændrede indholdet af
ved hjælp af markøren ptr.