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