Låt oss ta en titt på hur pekare används i C-programmeringsspråket.
Vi ska hantera två variabler:
aptr
Vi kommer också att möta två nyckeltecken:
- where would return the address location of variable - where means follow the memory address stored in ptr and set that location to 8
Antag att a finns på adressen 0x8130 i minnet och ptr vid 0x8134; antag också att detta är en 32-bitars maskin så att en int är 32-bitars i storlek. Följande är vad som skulle finnas i minnet efter att följande kodavsnitt har körts:
int a = 5;int *ptr = NULL;
| Adress | Innehåll |
|---|---|
| 0x8130 | 0x00000005 |
| 0x8134 | 0x00000000 |
(NULL-pekaren som visas här är 0x00000000.) Genom att tilldela adressen till a till ptr:
ptr = &a;
ger följande minnesvärden:
| Adress | Innehåll |
|---|---|
| 0x8130 | 0x00000005 |
| 0x8134 | 0x00008130 |
Sedan genom att referera ptr genom att koda:
*ptr = 8;
tar datorn innehåll i ptr (vilket är 0x8130), ”lokalisera” den adressen och tilldela 8 den platsen vilket ger följande minne:
| Adress | Innehåll |
|---|---|
| 0x8130 | 0x00000008 |
| 0x8134 | 0x00008130 |
Det är uppenbart att åtkomst till a ger värdet 8 eftersom den tidigare instruktionen modifierade innehållet i
via pekaren ptr.