Programmierkonzepte: Zeiger

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.

Leave a Reply

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.