Ein Zeiger (int *p) speichert die Speicheradresse einer Variable. Mit &x holst du die Adresse, mit *p greifst du auf den Wert dahinter zu (Dereferenzieren). Zeiger ermöglichen es, Funktionen Originalwerte ändern zu lassen und Speicher dynamisch zu verwalten.
Ein Zeiger, der nirgends hinzeigt, sollte NULL sein. Zugriff darauf stürzt ab.
#include <stdio.h>
void verdopple(int *x) {
*x = *x * 2;
}
int main(void) {
int zahl = 21;
int *p = &zahl;
printf("%d %p\n", *p, (void *)p);
verdopple(&zahl);
printf("%d\n", zahl); // 42
return 0;
}Merke
&x= Adresse,*p= Wert dahinterZeiger erlauben Änderung von Originalwerten
NULLfür 'zeigt nirgends hin'
Aufgabe
Schreibe eine Funktion `tausche(int *a, int *b)`, die zwei Werte vertauscht.