|
Hauptseite - Welches System? - Hardware - Software - Emulatoren - |
Internet MausNet Programmieren Verweise Über |
In C sind sämtliche Paramter Kopien. Eine Funktion kann deshalb nicht einen Parameter so ändern, daß der Aufrufer von dieser Änderung Notiz nimmt.
#include <stdio.h> void Rechne(int a) { a = 10 * a; } int main(void) { int i = 3; printf("i vor dem Aufruf: %d\n",i); Rechne(i); printf("i nach dem Aufruf: %d\n",i); return 0; }
Müssen die Parameter verändert werden. Z.B. weil es Strukturen sind, die als Returnwerte nicht zulässig sind, muß ein Zeiger auf diesen Datentyp übergeben werden.
#include <stdio.h> void Rechne(int *a) { *a = 10 * (*a); } int main(void) { int i = 3; printf("i vor dem Aufruf: %d\n",i); Rechne(&i); printf("i nach dem Aufruf: %d\n",i); return 0; }
Man beachte, daß jetzt in dem Aufruf natürlich auch der Adreßoperator benutzt wird, um die Adresse der Variablen zu ermitteln. Da der Name eines Feldes der Adresse des ersten Elements entspricht, können Elemente von Felder auch verändert werden. Ein Beispiel dazu findet sich im Kapitel über offene Felder.
English version not yet available. |