Zurück zu: C Tutorial
Parameter und Argumente
Informationen können als Parameter an Funktionen übergeben werden. Parameter fungieren innerhalb der Funktion als Variablen.
Parameter werden nach dem Funktionsnamen in Klammern angegeben. Sie können beliebig viele Parameter hinzufügen, trennen Sie sie einfach durch ein Komma:
Syntax
returnType functionName(parameter1, parameter2, parameter3) {
// code to be executed
}
Im folgenden Beispiel verwendet die Funktion eine Zeichenfolge mit dem Namen als Parameter. Wenn die Funktion aufgerufen wird, übergeben wir einen Namen, der innerhalb der Funktion verwendet wird, um „Hallo“ und den Namen jeder Person auszudrucken:
Beispiel
void myFunction(char name[]) {
printf("Hello %s\n", name);
}
int main() {
myFunction("Liam");
myFunction("Jenny");
myFunction("Anja");
return 0;
}
// Hello Liam
// Hello Jenny
// Hello Anja
Wenn ein Parameter an die Funktion übergeben wird, nennt man ihn Argument. Im obigen Beispiel ist also
Name
ein Parameter, währendLiam
,Jenny
undAnja
Argumente sind.
Mehrere Parameter
Innerhalb der Funktion können Sie beliebig viele Parameter hinzufügen:
Beispiel
void myFunction(char name[], int age) {
printf("Hello %s. You are %d years old.\n", name, age);
}
int main() {
myFunction("Liam", 3);
myFunction("Jenny", 14);
myFunction("Anja", 30);
return 0;
}
// Hello Liam. You are 3 years old.
// Hello Jenny. You are 14 years old.
// Hello Anja. You are 30 years old.
Wenn wir das Beispiel „Summe der Zahlen berechnen“ von der vorherigen Seite betrachten, können wir durch die Verwendung von Funktionsparametern ein nachhaltigeres Programm erstellen:
Beispiel
void calculateSum(int x, int y) {
int sum = x + y;
printf("The sum of %d + %d is: %d\n", x, y, sum);
}
int main() {
calculateSum(5, 3);
calculateSum(8, 2);
calculateSum(15, 15);
return 0;
}
Hinweise zu den Parametern
Beachten Sie, dass beim Arbeiten mit mehreren Parametern der Funktionsaufruf genauso viele Argumente haben muss wie Parameter vorhanden sind und die Argumente in der gleichen Reihenfolge übergeben werden müssen.
Übergeben von Arrays als Funktionsparameter
Sie können einer Funktion auch Arrays übergeben:
Beispiel
void myFunction(int myNumbers[5]) {
for (int i = 0; i < 5; i++) {
printf("%d\n", myNumbers[i]);
}
}
int main() {
int myNumbers[5] = {10, 20, 30, 40, 50};
myFunction(myNumbers);
return 0;
}
Beispiel erklärt
Die Funktion (
myFunction
) verwendet als Parameter ein Array (int myNumbers[5
]) und durchläuft die Array Elemente mit derfor
Schleife.Wenn die Funktion innerhalb von
main()
aufgerufen wird, übergeben wir das ArraymyNumbers
, das die Array-Elemente ausgibt.Beachten Sie, dass Sie beim Aufruf der Funktion nur den Namen des Arrays verwenden müssen, wenn Sie es als Argument
myFunction(myNumbers)
übergeben. Die vollständige Deklaration des Arrays ist jedoch im Funktionsparameter (int myNumbers[5]
) erforderlich.
Rückgabewerte
Das Schlüsselwort void
, das in den vorherigen Beispielen verwendet wurde, gibt an, dass die Funktion keinen Wert zurückgeben soll. Wenn Sie möchten, dass die Funktion einen Wert zurückgibt, können Sie anstelle von void
einen Datentyp (wie int
oder float
usw.) verwenden und das Schlüsselwort return
innerhalb der Funktion verwenden:
Beispiel
int myFunction(int x) {
return 5 + x;
}
int main() {
printf("Result is: %d", myFunction(3));
return 0;
}
// Outputs 8 (5 + 3)
Dieses Beispiel gibt die Summe einer Funktion mit zwei Parametern zurück:
Beispiel
int myFunction(int x) {
return 5 + x;
}
int main() {
printf("Result is: %d", myFunction(3));
return 0;
}
// Outputs 8 (5 + 3)
Sie können das Ergebnis auch in einer Variablen speichern:
Beispiel
int myFunction(int x, int y) {
return x + y;
}
int main() {
int result = myFunction(5, 3);
printf("Result is = %d", result);
return 0;
}
// Outputs 8 (5 + 3)
Wenn wir das Beispiel „Summe der Zahlen berechnen“ noch einmal betrachten, können wir stattdessen return
verwenden und die Ergebnisse in verschiedenen Variablen speichern. Dadurch wird das Programm noch flexibler und leichter steuerbar:
Beispiel
int calculateSum(int x, int y) {
return x + y;
}
int main() {
int result1 = calculateSum(5, 3);
int result2 = calculateSum(8, 2);
int result3 = calculateSum(15, 15);
printf("Result1 is: %d\n", result1);
printf("Result2 is: %d\n", result2);
printf("Result3 is: %d\n", result3);
return 0;
}
Tipp: Wenn Sie viele „Ergebnisvariablen“ haben, ist es besser, die Ergebnisse in einem Array zu speichern:
Beispiel
int calculateSum(int x, int y) {
return x + y;
}
int main() {
// Create an array
int resultArr[6];
// Call the function with different arguments and store the results in the array
resultArr[0] = calculateSum(5, 3);
resultArr[1] = calculateSum(8, 2);
resultArr[2] = calculateSum(15, 15);
resultArr[3] = calculateSum(9, 1);
resultArr[4] = calculateSum(7, 7);
resultArr[5] = calculateSum(1, 1);
for (int i = 0; i < 6; i++) {
printf("Result%d is = %d\n", i + 1, resultArr[i]);
}
return 0;
}
Beispiel aus dem echten Leben
Um ein praktisches Beispiel für die Verwendung von Funktionen zu demonstrieren, erstellen wir ein Programm, das einen Wert von Fahrenheit in Celsius umrechnet:
Beispiel
// Function to convert Fahrenheit to Celsius
float toCelsius(float fahrenheit) {
return (5.0 / 9.0) * (fahrenheit - 32.0);
}
int main() {
// Set a fahrenheit value
float f_value = 98.8;
// Call the function with the fahrenheit value
float result = toCelsius(f_value);
// Print the fahrenheit value
printf("Fahrenheit: %.2f\n", f_value);
// Print the result
printf("Convert Fahrenheit to Celsius: %.2f\n", result);
return 0;
}