Void und Rekursion
Der Rückgabetyp void in C
In der Programmiersprache C wird von Funktionen, die mit einem bestimmten Rückgabetyp deklariert sind, erwartet, dass sie eine return-Anweisung enthalten, die einen Wert dieses Typs zurückliefert. Es gibt jedoch Situationen, in denen eine Funktion nichts zurückgeben muss – beispielsweise, wenn sie lediglich Text auf dem Bildschirm ausgibt. In solchen Fällen sollte die Funktion mit dem Typ void deklariert werden.
Main.c
12345678910#include <stdio.h> void func() { printf("This function returns nothing\n"); } int main() { func(); return 0; }
Das Schlüsselwort void gibt an, dass eine Funktion keinen Wert zurückgibt. Es kann auch im Zusammenhang mit Zeigern verwendet werden. Der Versuch, eine Variable vom Typ void zu deklarieren, führt zu einem Fehler, da der Compiler nicht weiß, wie viel Speicher reserviert werden soll.
Main.c
1234567#include <stdio.h> int main() { void variable; return 0; }
Rekursion
C unterstützt die Möglichkeit, dass sich eine Funktion selbst aufruft, eine Technik, die als Rekursion bezeichnet wird.
Man kann sich Rekursion wie das Dehnen und anschließende Loslassen eines Gummibands vorstellen. Sie wird häufig bei mathematischen Operationen eingesetzt, beispielsweise zur Berechnung von Fakultäten.
Fakultäten werden oft verwendet, um Funktionswerte durch die Entwicklung dieser Funktionen in Taylor- oder Maclaurin-Reihen zu approximieren.
Main.c
1234567891011121314151617181920#include <stdio.h> int factorial(int n) { // if n = 0 or 1, because 0! = 1 and 1! = 1 if (n == 0 || n == 1) return 1; // recursion case else return n * factorial(n - 1); } int main() { int n = 3; printf("factorial(%d) = %d\n", n, factorial(n)); return 0; }
Im Zusammenhang mit Rekursion ruft die Funktion sich selbst so lange auf, bis die Bedingung n == 0 || n == 1 erfüllt ist. Sobald diese Bedingung erfüllt ist, werden die Ergebnisse der nachfolgenden Aufrufe der Funktion factorial() in umgekehrter Reihenfolge zurückgegeben, ähnlich wie beim Zusammenfalten einer Ziehharmonika. Sobald Schritt 6 erreicht ist, gibt der ursprüngliche Aufruf von factorial(3) den Wert 6 zurück.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Can you explain more about how recursion works in C?
What are some common mistakes to avoid when using recursion?
Can you give an example of a recursive function in C?
Awesome!
Completion rate improved to 2.63
Void und Rekursion
Swipe um das Menü anzuzeigen
Der Rückgabetyp void in C
In der Programmiersprache C wird von Funktionen, die mit einem bestimmten Rückgabetyp deklariert sind, erwartet, dass sie eine return-Anweisung enthalten, die einen Wert dieses Typs zurückliefert. Es gibt jedoch Situationen, in denen eine Funktion nichts zurückgeben muss – beispielsweise, wenn sie lediglich Text auf dem Bildschirm ausgibt. In solchen Fällen sollte die Funktion mit dem Typ void deklariert werden.
Main.c
12345678910#include <stdio.h> void func() { printf("This function returns nothing\n"); } int main() { func(); return 0; }
Das Schlüsselwort void gibt an, dass eine Funktion keinen Wert zurückgibt. Es kann auch im Zusammenhang mit Zeigern verwendet werden. Der Versuch, eine Variable vom Typ void zu deklarieren, führt zu einem Fehler, da der Compiler nicht weiß, wie viel Speicher reserviert werden soll.
Main.c
1234567#include <stdio.h> int main() { void variable; return 0; }
Rekursion
C unterstützt die Möglichkeit, dass sich eine Funktion selbst aufruft, eine Technik, die als Rekursion bezeichnet wird.
Man kann sich Rekursion wie das Dehnen und anschließende Loslassen eines Gummibands vorstellen. Sie wird häufig bei mathematischen Operationen eingesetzt, beispielsweise zur Berechnung von Fakultäten.
Fakultäten werden oft verwendet, um Funktionswerte durch die Entwicklung dieser Funktionen in Taylor- oder Maclaurin-Reihen zu approximieren.
Main.c
1234567891011121314151617181920#include <stdio.h> int factorial(int n) { // if n = 0 or 1, because 0! = 1 and 1! = 1 if (n == 0 || n == 1) return 1; // recursion case else return n * factorial(n - 1); } int main() { int n = 3; printf("factorial(%d) = %d\n", n, factorial(n)); return 0; }
Im Zusammenhang mit Rekursion ruft die Funktion sich selbst so lange auf, bis die Bedingung n == 0 || n == 1 erfüllt ist. Sobald diese Bedingung erfüllt ist, werden die Ergebnisse der nachfolgenden Aufrufe der Funktion factorial() in umgekehrter Reihenfolge zurückgegeben, ähnlich wie beim Zusammenfalten einer Ziehharmonika. Sobald Schritt 6 erreicht ist, gibt der ursprüngliche Aufruf von factorial(3) den Wert 6 zurück.
Danke für Ihr Feedback!