Inhaltsverzeichnis

Ein Pointer (Zeiger) ist ein Konzept in der Programmiersprache C, das es ermöglicht, Speicheradressen zu manipulieren und auf Daten zuzugreifen.

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. Durch die Manipulation von Pointern kann auf Daten zugegriffen und diese geändert werden.

Zuweisung und Dereferenzierung

Ein Pointer kann einer Variable zugewiesen werden, indem der Adressoperator „&“ verwendet wird. Die Dereferenzierung eines Pointers erfolgt durch den indirekten Zugriff auf die Daten, auf die er zeigt, mithilfe des „*“ Operators.

int num = 42;
int* ptr = # // Zeiger auf die Adresse von "num"
 
printf("Wert von num: %d\n", *ptr); // Dereferenzierung des Zeigers
 
*ptr = 24; // Wert an der Adresse ändern worauf der Zeiger verweist
 
printf("Wert von num: %d\n", *ptr);

Pointer Arithmetik

In C kann Arithmetik auf Pointern durchgeführt werden, um den Zeiger in der Speicherstruktur zu verschieben. Die Pointer-Arithmetik basiert auf der Größe des zugrunde liegenden Datentyps. Bei einem 32 Bit Integer verschiebt sich der Zeiger z.B um jeweils 32 Bit.

int numbers[] = {1, 2, 3, 4, 5};
int* ptr = numbers; // Zeiger auf das erste Element des Arrays
 
printf("Erstes Element: %d\n", *ptr); // Ausgabe: Erstes Element: 1
 
ptr++; // Verschieben des Zeigers zum nächsten Element
 
printf("Zweites Element: %d\n", *ptr); // Ausgabe: Zweites Element: 2