Zeiger auf Zeiger in C

CCBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In der C-Programmierung werden Zeiger verwendet, um die Speicheradressen anderer Variablen zu speichern. Entsprechend ist ein Zeiger auf einen Zeiger eine Variable, die die Speicheradresse einer anderen Zeigervariable speichert. In diesem Lab werden wir lernen, wie man ein C-Programm schreibt, das mit Zeigern auf Zeiger umgeht.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/PointersandMemoryGroup(["Pointers and Memory"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c(("C")) -.-> c/BasicsGroup(["Basics"]) c/BasicsGroup -.-> c/variables("Variables") c/BasicsGroup -.-> c/operators("Operators") c/PointersandMemoryGroup -.-> c/pointers("Pointers") c/PointersandMemoryGroup -.-> c/memory_address("Memory Address") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/variables -.-> lab-123305{{"Zeiger auf Zeiger in C"}} c/operators -.-> lab-123305{{"Zeiger auf Zeiger in C"}} c/pointers -.-> lab-123305{{"Zeiger auf Zeiger in C"}} c/memory_address -.-> lab-123305{{"Zeiger auf Zeiger in C"}} c/output -.-> lab-123305{{"Zeiger auf Zeiger in C"}} end

Notwendige Variablen deklarieren

In diesem Schritt werden wir drei Variablen deklarieren: var, *ptr und **pptr.

int var;
int *ptr;
int **pptr;

Dem Variablen var einen Wert zuweisen

In diesem Schritt werden wir dem Variablen var einen Wert zuweisen.

var = 50;

Die Adresse von var an den Zeiger ptr zuweisen

In diesem Schritt werden wir die Adresse der Variablen var an den Zeiger ptr zuweisen.

ptr = &var;

Die Adresse von ptr an den Zeiger auf Zeiger pptr zuweisen

Jetzt werden wir die Adresse des Zeigers ptr an die Zeigervariable auf Zeiger pptr zuweisen.

pptr = &ptr;

Den Wert über pptr zugreifen

Schließlich werden wir den Wert von var über die Zeigervariable auf Zeiger pptr zugreifen.

printf("\nValue of var = %d\n", var);
printf("\nValue available at *ptr = %d\n", *ptr);
printf("\nValue available at **pptr = %d\n", **pptr);

Die erste printf-Anweisung wird den Wert der Variablen var ausgeben.

Die zweite printf-Anweisung wird den Wert ausgeben, der an der im ptr gespeicherten Speicheradresse verfügbar ist, was der Wert von var sein sollte.

Die dritte printf wird den Wert ausgeben, der an der im pptr gespeicherten Speicheradresse verfügbar ist, was der Wert von ptr sein sollte, und dann zweimal indirekt zugreifen, um den Wert von var zu erhalten.

Den vollständigen Code in main.c schreiben

Jetzt, nachdem wir die verschiedenen Schritte durchlaufen haben, können wir den Code in der main-Funktion von main.c zusammenfügen.

#include <stdio.h>

int main()
{
    int var;
    int *ptr;
    int **pptr;

    var = 50;

    ptr = &var;

    pptr = &ptr;

    printf("Value of var = %d\n", var);
    printf("Value available at *ptr = %d\n", *ptr);
    printf("Value available at **pptr = %d\n", **pptr);

    return 0;
}

Zusammenfassung

In diesem schrittweisen Lab haben wir gelernt, wie man ein C-Programm schreibt, das mit Zeigern auf Zeiger umgeht. Wir haben die erforderlichen Variablen deklariert, einem Variablen einen Wert zugewiesen, die Adresse der Variablen an einen Zeiger zugewiesen, die Adresse des Zeigers an einen Zeiger auf Zeiger zugewiesen und schließlich den Wert der Variablen über den Zeiger auf Zeiger zugegriffen. Das Vertrautsein mit Zeigern auf Zeiger ist ein entscheidender Meilenstein beim Erlernen der C-Programmierung.