Deutsche Lernausgabe
Prototypen und Rekursion in C
Deklarieren Sie vor dem Aufruf und verändern Sie externe Daten über gültige Zeiger.

Ein Prototyp legt Rückgabe und Parameter fest; die Definition muss dazu passen. Argumente werden kopiert: Die Änderung eines gewöhnlichen Parameters ändert nicht die Variable des Aufrufers.
Übergeben Sie zum Tauschen zweier Werte des Aufrufers deren Adressen und schreiben Sie über die Zeiger. Dies wird manchmal Referenzübergabe genannt, doch C übergibt weiterhin den Wert des Zeigers.
Definieren Sie für Rekursion zuerst den Basisfall und stellen Sie sicher, dass jeder Aufruf das Problem verkleinert. Testen Sie kleine Eingaben und berücksichtigen Sie den Stack.
Quellcode
#include <stdio.h>
#include <stdlib.h>
// Function prototypes
unsigned long long factorial(unsigned int n);
void swap(int *a, int *b);
int add(int x, int y);
int main(void) {
int a = 15, b = 30;
printf("1. Sum function: %d + %d = %d\n", a, b, add(a, b));
printf("\n2. Pass-by-Reference Swap:\n");
printf(" Before swap: a = %d, b = %d\n", a, b);
swap(&a, &b);
printf(" After swap: a = %d, b = %d\n", a, b);
printf("\n3. Recursive Factorials:\n");
for (unsigned int i = 0; i <= 6; i++) {
printf(" %u! = %llu\n", i, factorial(i));
}
return EXIT_SUCCESS;
}
int add(int x, int y) {
return x + y;
}
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
// Recursive factorial with base case
unsigned long long factorial(unsigned int n) {
if (n <= 1) {
return 1; // Base case
}
return (unsigned long long)n * factorial(n - 1); // Recursive step
}Im Compiler öffnenErwartetes Ergebnis
1. Sum function: 15 + 30 = 45 2. Pass-by-Reference Swap: Before swap: a = 15, b = 30 After swap: a = 30, b = 15 3. Recursive Factorials: 0! = 1 1! = 1 2! = 2 3! = 6 4! = 24 5! = 120 6! = 720
Häufige Fragen
Warum bleiben Code und manche Ausgaben englisch?
C-Schlüsselwörter, Bezeichner, Programmkommentare und erwartete Ausgaben bleiben wie im Original, damit der Code ausführbar und die Tests konsistent bleiben. Erklärungen und Aufgabenstellungen sind übersetzt.