5 Pluspunkte 0 Minuspunkte
Was sind Pointer in C und wie verwendet man sie?
von  

2 Antworten

0 Pluspunkte 0 Minuspunkte

Ein Pointer ist eine Variable, die die Speicheradresse einer anderen Variable speichert. Sie ermöglichen den indirekten Zugriff auf Daten, indem sie die Adresse der Speicherzelle benutzt, in der die Daten gespeichert sind.

int i = 1; // Die Variable i wird auf dem Stack gespeichert
int *ptr = &i; // Mit dem &-Operator bekommt man die Adresse einer Variable, die Adresse von i ist jetzt in ptr gespeichert

printf("%d", i); // Die Variable i wird direkt ausgegeben
printf("%d", *ptr); // Mit dem *-Operator greift man wieder auf den Inhalt zu der an der Stelle gespeichert ist
von (884 Punkte)  
0 Pluspunkte 0 Minuspunkte

Pointer sind Adressen. Wenn du auf einen Pointer zugreifst greifst du auf die Adresse zu die in dem Pointer steht. Beispiel.

#include <stdio.h>

int main() {

    int a = 10;       // Eine Variable mit dem Wert 10
    int *p = &a;      // Ein Zeiger, der die Adresse von 'a' speichert

    printf("Wert von a: %d\n", a);             // Ausgabe des Werts von 'a'
    printf("Adresse von a: %p\n", (void *)&a); // Adresse von 'a'
    printf("Wert von p (Adresse von a): %p\n", (void *)p); 
    printf("Wert, auf den p zeigt: %d\n", *p); // Dereferenzierung von 'p'

    // Änderung des Werts von 'a' über den Zeiger
    *p = 20; // 'a' wird auf 20 gesetzt

    printf("Neuer Wert von a: %d\n", a);             // Ausgabe des Werts von 'a'
    printf("Adresse von a: %p\n", (void *)&a); // Adresse von 'a'
    printf("Wert von p (Adresse von a): %p\n", (void *)p); 
    printf("Wert, auf den p zeigt: %d\n", *p); // Dereferenzierung von 'p'

    return 0;

}
von (868 Punkte)