Schauen wir uns an, wie Zeiger in der Programmiersprache C verwendet werden.
Wir werden uns mit zwei Variablen befassen:
aptr
Wir werden auch zwei Schlüsselzeichen treffen:
- where would return the address location of variable - where means follow the memory address stored in ptr and set that location to 8
Angenommen, a befindet sich unter der Adresse 0x8130 im Speicher und ptr unter 0x8134; nehmen Sie auch an, dass dies eine 32-Bit-Maschine ist, sodass ein int 32-Bit-Eingang hat Größe. Folgendes würde sich im Speicher befinden, nachdem das folgende Codefragment ausgeführt wurde:
int a = 5;int *ptr = NULL;
| Adresse | Inhalt |
|---|---|
| 0x8130 | 0x00000005 |
| 0x8134 | 0x00000000 |
(Der hier gezeigte NULL-Zeiger ist 0x00000000.) Durch Zuweisen der Adresse von a zu ptr:
ptr = &a;
liefert die folgenden Speicherwerte:
| Adresse | Inhalt |
|---|---|
| 0x8130 | 0x00000005 |
| 0x8134 | 0x00008130 |
Durch Dereferenzieren von ptr durch Codierung:
*ptr = 8;
übernimmt der Computer die Der Inhalt von ptr (0x8130) „lokalisiert“ diese Adresse und weist diesem Speicherort 8 zu, wodurch der folgende Speicher erhalten wird:
| Adresse | Inhalt |
|---|---|
| 0x8130 | 0x00000008 |
| 0x8134 | 0x00008130 |
Der Zugriff auf a ergibt eindeutig den Wert 8, da der vorherige Befehl den Inhalt von
über den Zeiger ptr.