BESTE WEBSITE FÜR WEBENTWICKLER
C Sprache. W3Schools auf Deutsch. Unterricht für Anfänger

Ua En Es

C Hinweise


Zeiger erstellen

Aus dem vorherigen Kapitel haben Sie gelernt, dass wir mit dem Referenzoperator die Speicheradresse einer Variablen ermitteln können &:

Beispiel

int myAge = 43; // eine int-Variable

printf("%d", myAge);  // Gibt den Wert von myAge aus (43)
printf("%p", &myAge); // Gibt die Speicheradresse von myAge aus (0x7ffe5367e044)
Try it Yourself »

Ein Zeiger ist eine Variable, die die Speicheradresse einer anderen Variablen als Wert speichert.

Eine Zeigervariable zeigt auf einen Datentyp (wie int) desselben Typ und wird mit dem Operator * erstellt.

Dem Zeiger wird die Adresse der Variablen zugewiesen, mit der Sie arbeiten:

Beispiel

int myAge = 43;     // Eine int-Variable
int* ptr = &myAge;  // Eine Zeigervariable mit dem Namen ptr, die die Adresse von myAge speichert

// Geben Sie den Wert von myAge aus (43)
printf("%d\n", myAge);

// Geben Sie die Speicheradresse von myAge aus (0x7ffe5367e044)
printf("%p\n", &myAge);

// Geben Sie die Speicheradresse von myAge mit dem Zeiger aus (0x7ffe5367e044)
printf("%p\n", ptr);
Try it Yourself »

Beispiel erklärt

Erstellen Sie eine Zeigervariable mit dem Namen ptr, die auf eine int-Variable zeigt (myAge). Beachten Sie, dass der Typ des Zeigers mit dem Typ der Variablen übereinstimmen muss, mit der Sie arbeiten (int in unserem Beispiel).

Verwenden Sie den Operator &, um die Speicheradresse der Variablen myAge zu speichern und sie der zuzuweisen Zeiger.

Jetzt enthält ptr den Wert der Speicheradresse von myAge.


Dereferenzierung

Im obigen Beispiel haben wir die Zeigervariable verwendet, um die Speicheradresse einer Variablen abzurufen (zusammen mit dem & Referenz-Operator verwendet).

Sie können den Wert der Variablen, auf die der Zeiger zeigt, auch mithilfe des *-Operators (des Dereferenzierungsoperators) ermitteln:

Beispiel

int myAge = 43;     // Variable Aussage
int* ptr = &myAge;  // Zeigerdeklaration

// Referenz: Geben Sie die Speicheradresse von myAge mit dem Zeiger aus (0x7ffe5367e044)
printf("%p\n", ptr);

// Dereferenzierung: Geben Sie den Wert von myAge mit dem Zeiger aus (43)
printf("%d\n", *ptr);
Try it Yourself »

Beachten Sie, dass das Zeichen * hier verwirrend sein kann, da es in unserem Code zwei verschiedene Dinge bewirkt:

  • Bei Verwendung in der Deklaration (int* ptr) wird eine Zeigervariable erstellt.
  • Wenn es nicht in der Deklaration verwendet wird, fungiert es als Dereferenzierungsoperator.

Gut zu wissen: Es gibt zwei Möglichkeiten, Zeigervariablen in C zu deklarieren:

int* myNum;
int *myNum;

Hinweise zu Zeigern

Zeiger sind eines der Dinge, die C von anderen Programmiersprachen abheben Python und Java.

Sie sind in C wichtig, weil sie es uns ermöglichen, die Daten im Speicher des Computers zu manipulieren. Dadurch kann der Code reduziert und die Leistung verbessert werden. Wenn Sie mit Datenstrukturen wie Listen, Bäumen und Diagrammen vertraut sind, sollten Sie wissen, dass Zeiger für deren Implementierung besonders nützlich sind. Und manchmal muss man sogar Zeiger verwenden, zum Beispiel beim Arbeiten mit Dateien.

Aber seien Sie vorsichtig; Zeiger müssen mit Vorsicht behandelt werden, da es möglich ist, Daten, die in anderen Speicheradressen gespeichert sind, zu beschädigen.


C Übungen

Testen Sie sich mit Übungen

Übung:

Erstellen Sie eine Zeigervariable namens ptr, die auf die int-Variable myAge zeigt:

int myAge = 43;
  = &myAge;