Programmeringskoncepter: markører

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.

Leave a Reply

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *