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
.