C-Zeiger

Zeiger sind leistungsstarke Funktionen der C- und C ++ – Programmierung. Bevor wir Zeiger lernen, lernen wir die Adressen in der C-Programmierung kennen.

Adresse in C

Wenn Sie eine Variable var in Ihrem Programm haben, &var gibt Ihnen die Adresse im Speicher.

Wir haben die Adresse bei Verwendung der Funktion scanf() mehrfach verwendet.

Hier wird der vom Benutzer eingegebene Wert in der Adresse der Variablen var gespeichert. Nehmen wir ein Arbeitsbeispiel.

Ausgabe

var: 5 address of var: 2686778

Hinweis: Sie erhalten wahrscheinlich eine andere Adresse, wenn Sie den obigen Code ausführen.

C. Zeiger

Zeiger (Zeigervariablen) sind spezielle Variablen, die zum Speichern von Adressen anstelle von Werten verwendet werden.

Zeigersyntax

So können wir Zeiger deklarieren.

Hier haben wir einen Zeiger p vom Typ int deklariert.

Sie Sie können Zeiger auch auf diese Weise deklarieren.

Nehmen wir ein weiteres Beispiel für die Deklaration von Zeigern.

Hier haben wir einen Zeiger p1 und eine normale Variable p2 deklariert.

Zuweisen von Adressen zu Zeigern

Nehmen wir ein Beispiel.

Hier wird der Variablen c 5 zugewiesen. Und die Adresse von c wird dem PC-Zeiger zugewiesen.

Wert der durch Zeiger gerichteten Sache abrufen

Um den Wert der Sache zu erhalten, auf die die Zeiger zeigen, verwenden wir den * Operator. Beispiel:

Hier wird dem PC-Zeiger die Adresse von c zugewiesen. Um den in dieser Adresse gespeicherten Wert abzurufen, haben wir * pc verwendet.

Hinweis: Im obigen Beispiel ist pc ein Zeiger, nicht *pc. Sie können und sollten nicht wie *pc = &c;

* wird der Dereferenzierungsoperator genannt ( bei der Arbeit mit Zeigern). Es arbeitet mit einem Zeiger und gibt den in diesem Zeiger gespeicherten Wert an.

Ändern des durch Zeiger gezeigten Werts

Nehmen wir ein Beispiel.

Wir haben dem PC-Zeiger die Adresse von c zugewiesen.

Dann haben wir den Wert von c auf 1 geändert. Seit pc und der Adresse von c ist dasselbe, *pc gibt uns 1.

Nehmen wir ein anderes Beispiel.

Wir haben dem PC-Zeiger die Adresse c zugewiesen.

Anschließend haben wir *pc mit *pc = 1;. Da pc und die Adresse von c gleich sind, ist c gleich 1.

Nehmen wir noch ein Beispiel.

Die Adresse von c wird dem PC-Zeiger mit pc = &c; zugewiesen. Da c 5 ist, gibt *pc 5 an.

Dann wird die Adresse von d dem PC-Zeiger unter Verwendung von pc = &d; zugewiesen. Da d -15 ist, gibt *pc uns -15

Beispiel: Arbeiten mit Zeigern

Nehmen wir ein Arbeitsbeispiel.

Ausgabe

Address of c: 2686784Value of c: 22Address of pointer pc: 2686784Content of pointer pc: 22Address of pointer pc: 2686784Content of pointer pc: 11Address of c: 2686784Value of c: 2

Erläuterung des Programms

  1. int* pc, c;

    Hier Es werden ein Zeiger-PC und eine normale Variable c vom Typ int erstellt.
    Da pc und c anfangs nicht initialisiert werden, zeigt der Zeiger-PC entweder auf keine Adresse oder eine zufällige Adresse. Die Variable c hat eine Adresse, enthält jedoch einen zufälligen Müllwert.
  2. c = 22;

    Dies weist der Variablen c 22 zu. Das heißt, 22 wird im Speicherort der Variablen c gespeichert.
  3. pc = &c;

    Dies weist dem Zeiger-PC die Adresse der Variablen c zu.
  4. c = 11;

    Dies weist der Variablen c 11 zu.
  5. *pc = 2;

    Dadurch wird der Wert an der Speicherstelle, auf die der Zeiger-PC zeigt, auf 2 geändert.

Häufige Fehler beim Arbeiten mit Zeigern

Angenommen, Sie möchten, dass der Zeiger-PC auf 2 zeigt zeigen Sie auf die Adresse von c.

Hier ist ein Beispiel für Zeigersyntax, das Anfänger oft als verwirrend empfinden.

Warum haben wir keinen Fehler erhalten, wenn Verwenden von int *p = &c;?

Dies liegt daran, dass

In beiden Fällen erstellen wir einen Zeiger p (nicht *p) und &c zuweisen.

Um diese Verwirrung zu vermeiden, können wir die folgende Anweisung verwenden:

Jetzt wissen Sie, was Zeiger sind, und lernen, wie Zeiger beziehen sich auf Arrays im nächsten Lernprogramm.

Schreibe einen Kommentar

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