Programmeerconcepten: Pointers

Laten we eens kijken hoe pointers worden gebruikt in de C-programmeertaal.

We gaan twee variabelen behandelen:

aptr

We gaan ook twee sleuteltekens tegenkomen:

- where
would return the address location of variable
- where
means follow the memory address stored in ptr and set that location to 8

Stel dat a bevindt zich op adres 0x8130 in het geheugen en ptr op 0x8134; neem ook aan dat dit een 32-bits machine is, zodat een int 32-bits is in grootte. Het volgende is wat er in het geheugen zou zijn nadat het volgende codefragment is uitgevoerd:

int a = 5;int *ptr = NULL;

Adres Inhoud
0x8130 0x00000005
0x8134 0x00000000

(De NULL-pointer die hier wordt weergegeven is 0x00000000.) Door het adres van a toe te wijzen aan ptr:

 ptr = &a;

levert de volgende geheugenwaarden op:

Adres Inhoud
0x8130 0x00000005
0x8134 0x00008130

Door vervolgens ptr te derefereren door te coderen:

 *ptr = 8;

zal de computer de inhoud van ptr (dat is 0x8130), “lokaliseer” dat adres, en wijs 8 toe aan die locatie, wat het volgende geheugen oplevert:

Adres Inhoud
0x8130 0x00000008
0x8134 0x00008130

Het is duidelijk dat toegang tot a de waarde 8 oplevert, omdat de vorige instructie de inhoud van

door middel van de aanwijzer ptr.

Leave a Reply

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *