Zeiger als Übergabeparameter
In den vorherigen Beispielen wurden aufgerufene Funktionen mit keiner, einer oder mehreren Funktionen versehen.
Parameter. Diese Parameter wurden verwendet, um den Rückgabewert zu bestimmen, der der aufrufenden Funktion zur Verfügung steht. Im folgenden Beispiel wird versucht, eine Funktion zu schreiben, die die Werte ihrer beiden Werte tauscht.
Parameter untereinander. Dies kann mit Hilfe von Rückgabewerten nicht realisiert werden: Beispielprogramm: } /* Ende main */ void swap(int i, int j) { /* Funktion zum Ersetzen */ int c = i; /* Variable c sofort initialisieren */ i = j; j = c; printf(“2 -> i = %d, j = %d\n”, i, j); } /* End swap */ Der “Parkraumalgorithmus” dient dazu, den Inhalt der beiden Parameter innerhalb der Swap-Funktion auszutauschen: Das Verfahren ist das gleiche wie das Austauschen der Parkplätze von zwei Autos: Zeiger als Übertragungsparameter Status: 25.06.04 2 Die Ausgabe des Programms ist: 1 -> i = 1, j = 10 2 -> i = 10, j = 1 3 -> i = 1, j = 10 Der Swap-Algorithmus im Swap hat den Inhalt der Variablen korrekt getauscht, aber die Änderung war nur lokal innerhalb dieser Funktion. Es wurden keine Informationen über diese Änderung an die aufrufende Funktion weitergegeben. Der Grund dafür wird bei genauerer Betrachtung des Übertragungsmechanismus von Parametern in C deutlich. Im RAM (Random Acce