Onderzoek de volgende verklaringen:
int var_x;
int* ptrX;
var_x = 6;
ptrX = &var_x;
*ptrX = 12;
printf("value of x : %d", var_x);
De eerste lijn beweegt de compiler ertoe om een ruimte in geheugen voor een geheel te reserveren. De tweede lijn vertelt de compiler om ruimte te reserveren om een wijzer op te slaan.
Een wijzer is een opslagplaats voor een adres. De derde lijn zou u moeten eraan herinneren de scanfverklaringen. De adres "&" exploitant vertelt compiler om naar de plaats te gaan het var_x, opsloeg en dan het adres van de opslagplaats aan ptrX geeft.
De asterisk * voor een variabele vertelt de compiler aan dereference de wijzer, en gaat naar geheugen. Dan kunt u taken aan variabele maken die bij die plaats wordt opgeslagen. U kunt een variabele van verwijzingen voorzien en tot zijn gegevens toegang hebben door een wijzer. Zie een voorbeeld van wijzers:
/* illustratie van wijzergebruik */
#include <stdio.h>
int main()
{
int index, *pt1, *pt2;
index = 39; /* om het even welke numerieke waarde */
pt1 = &index; /* het adres van index */
pt2 = pt1;
printf("The value is %d %d %d\n", index, *pt1, *pt2);
*pt1 = 13; /* dit verandert de waarde van index */
printf("The value is %d %d %d\n", index, *pt1, *pt2);
return 0;
}
De output van het programma zal als volgt worden getoond:
The value is 39 39 39
The value is 13 13 13 |
|