Funktionen und Parameterübergabe


Eine Funktion ist ein Programmbaustein, der innerhalb eines Programmes wiederholt verwendet werden kann, sowohl von anderen Funktionen als auch von sich selbst (sog. Rekursion).


Grundprinzip.

You should already understand the concept of functions! If you don't, you are a sad sad man....

Might expand on this one day.

P.S. main() is a Funktion.

Deklaration.

Genau wie Variablen müssen Funktionen vor ihrer Verwendung  deklariert werden. Ein Beispiel:

	int add( int, int);

Diese Anweisung deklariert eine Funktion namens add, die zwei Parameter vom Typ int übernimmt und ein Ergebnis vom Typ int zurückliefert.

Definition.

Die  Definition ist der Kern einer Funktion. Hier ein  Beispiel.

Werteübergabe.

Diese Art der Übergabe von Werten an eine Funktion heißt  call by value. Dabei wird beim Funktionsaufruf die Kopie eines Wertes an die Funktion übergeben.   Wenn die Funktion die Kopie verändert,  bleibt das Original unverändert. Das vorhergehende Beispiel zeigt einen call by value .

Zeigerübergabe.

Diese Art der Übergabe von Werten an eine Funktion simuliert einen call by reference.  Das Konzept besteht darin, einer Funktion einen Zeiger auf eine Variable zu übergeben. Über den Zeiger kann die Funktion dann den Originalwert ändern.

Beispiel für die Übergabe einer Zeigers auf eine einfache Variable.

Übergabe von Arrays.

Beispiel: Übergabe eines Zeigers auf ein Array von Integerzahlen.
Beispiel: Übergabe eines Zeigers auf ein zweidimensionales Array von Integerzahlen.
Beispiel: Übergabe eines Zeigers auf ein Array von Zeichen.
Beispiel: Übergabe eines Zeigers auf ein zweidimensionales Array von Zeichen

Variable number of parms (...)

Beispiel: Übergabe einer Variablen Anzahl von Parametern

Rekursion.
----

Rückgabe von Werten.

Nach dem Schlüsselwort return  kann man in einer Funktion beschreiben, welches Ergebnis die Funktion an die Aufrufstelle zurückliefern soll, siehe Beispiel . Der Rückgabewert kann nur ein einfacher Datentyp (int, double, float, etc.) sein, Arrays sind z.B. nicht möglich.

Rückgabe von Zeigern.

Bei einfachen Datentypen ist die Rückgabe von Werten ausreichend  aber nicht, wenn man z.B. 'char *' oder Strukturen zurückgeben will. In solchen Fällen arbeitet man mit Zeigern, die als Ergebnis zurückgegeben werden.  Wenn man mit Zeigern als Rückgabewert arbeitet, muß man sich über die Bedeutung der Speicherklasse  'static' im Klaren sein, sonst erhält man undefinierte Ergebnisse.


Anfang Hauptindex Schlüsselwörter Funktionen

Übers.: G. Junghanns