Zeiger (Pointers) sind Variablen, die die Adresse einer anderen Variablen speichern. Sie ermöglichen direkte Speicheradressierung, dynamische Speicherverwaltung und sind zentral in C.
int a = 10;
int *p = &a; // p speichert die Adresse von a
printf("%p\n", (void*)p);
* kennzeichnet einen Zeiger beim Deklarieren& gibt die Adresse einer Variablenint value = *p; // Wert von a lesen
*p = 20; // Wert von a ändern
int arr[3] = {1,2,3};
int *ptr = arr; // Zeiger auf erstes Element
printf("%d\n", *ptr); // 1
ptr++; // nächstes Element
printf("%d\n", *ptr); // 2
int arr[5] = {10,20,30,40,50};
int *p = arr;
for(int i=0; i<5; i++) {
printf("%d ", *(p+i));
}
int a = 5;
int *p = &a;
int **pp = &p;
printf("%d\n", **pp); // 5
void increment(int *x) {
(*x)++;
}
int main(void) {
int a = 10;
increment(&a);
printf("%d\n", a); // 11
return 0;
}
* zur Dereferenzierung, & zur Adressabfrage