📘 Kapitel 4 · Funktionen & Strukturierung

Parameter und
Rückgabewerte

Eingaben übergeben · return · Mehrere Parameter · Rückgabetypen

17 / 30 Units
Ömer
Kapitel 4: Funktionen & Strukturierung ~45 Min. Theorie + Simulator + Quiz + Spickzettel
Ömer
Ömer sagt:

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

parameter.cC
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

return.cC
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

SignaturEinsatz
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.

call_by_value.cC
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!
}
▶ Ausgabe
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 einen float-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 Aufruf flaeche(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:

C Simulator – Unit 17 – Funktionen
▶ Ausgabe
– Klicke AUSFÜHREN –
Ömer
Ömer sagt:

Schreibe eigene Funktionen und ändere die Argumente beim Aufruf. So siehst du direkt wie Funktionen Daten verarbeiten!

🎯 Wissens-Quiz

Fragen werden geladen …

📋 Spickzettel

Parameter & Return
Typ Name(Typ par)Parameter-Syntax
return Wert;Rückgabewert
void = kein returnKein Ergebnis
int f(int a,int b)Mehrere Parameter
Häufige Typen
int f(int,int)Ganzzahl-Berechnung
float f(float,float)Komma-Berechnung
void f(int)Ausgabe mit Param
int f(int)Prüfung (0/1)

✅ 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