
Parameter machen Funktionen flexibel – und Rückgabewerte machen sie nützlich. Eine Funktion max(a, b) ist tausendmal besser als tausend if-Blöcke!
Parameter – Eingaben übergeben
void quadrat(int n) { // n = Parameter printf("%d²=%d\n", n, n*n); } int main() { quadrat(5); // Argument: 5 quadrat(12); // Argument: 12 }
Rückgabewerte – return
int maximum(int a, int b) { if (a > b) return a; return b; } int main() { int m = maximum(7, 12); printf("Max: %d\n", m); // 12 }
Typische Muster
| Signatur | Einsatz |
|---|---|
| void f() | Ausgabe, keine Eingabe, kein Ergebnis |
| void f(int x) | Ausgabe mit Parameter |
| int f(int x) | Berechnung zurückgeben |
| float f(float a, float b) | Komma-Berechnung |
Call by Value – Wichtiges Konzept
In C wird beim Funktionsaufruf immer eine Kopie des Wertes übergeben. Änderungen am Parameter innerhalb der Funktion haben keinen Einfluss auf die ursprüngliche Variable.
void verdoppele(int n) { n = n * 2; // ändert nur die lokale Kopie! } int main() { int x = 5; verdoppele(x); printf("%d\n", x); // Immer noch 5! }
Vorschau: Zeiger (Pointer)
Um den Originalwert wirklich zu verändern, braucht man einen Zeiger (kommt in einem späteren Kapitel):void verdoppele(int *n) { *n = *n * 2; }
Dann übergibt man die Adresse: verdoppele(&x);
Häufige Fehler
Warnung: Typische Fehler mit Parametern & Rückgabewerten
- Return ohne Wert in non-void Funktion:
int berechne() { return; }– der Compiler erwartet einen Wert nach return. Undefiniertes Verhalten! - Falscher Rückgabetyp: Eine
int-Funktion die einenfloat-Wert zurückgibt schneidet die Nachkommastellen ab. Beispiel:int f() { return 3.9f; }ergibt 3. - Parameter-Reihenfolge vergessen: Bei
float flaeche(float breite, float hoehe)ist der Aufrufflaeche(hoehe, breite)legal aber falsch – C prüft nur den Typ, nicht die Bedeutung.
⚡ Code-Simulator
Schreibe eigene Funktionen und teste sie – der Simulator zeigt printf-Ausgaben:

Schreibe eigene Funktionen und ändere die Argumente beim Aufruf. So siehst du direkt wie Funktionen Daten verarbeiten!
🎯 Wissens-Quiz
📋 Spickzettel
✅ Checkliste Unit 17
- Ich kann Funktionen mit Parametern definieren
- Ich kann Funktionen mit Rückgabewert schreiben
- Ich kenne den Unterschied zwischen Parameter und Argument
- Ich verstehe wann return benutzt wird