Übergeben Sie Arrays an eine Funktion in C
Arrays an eine Funktion in C übergeben
In diesem Tutorial lernen Sie anhand von Beispielen, Arrays (sowohl eindimensionale als auch mehrdimensionale Arrays) in der C-Programmierung an eine Funktion zu übergeben.
In der C-Programmierung können Sie ein ganzes Array an Funktionen übergeben. Bevor wir das lernen, sehen wir uns an, wie Sie einzelne Elemente eines Arrays an Funktionen übergeben können.
Individuelle Array-Elemente übergeben
Das Übergeben von Array-Elementen an eine Funktion ähnelt dem Übergeben von Variablen an eine Funktion.
Beispiel 1: Individuelle Array-Elemente übergeben
#include <stdio.h>
void display(int age1, int age2) {
printf("%d\n", age1);
printf("%d\n", age2);
}
int main() {
int ageArray[] = {2, 8, 4, 12};
// pass second and third elements to display()
display(ageArray[1], ageArray[2]);
return 0;
}
Ausgabe
8 4
Hier haben wir Array-Parameter an display()
übergeben Funktion genauso, wie wir Variablen an eine Funktion übergeben.
// pass second and third elements to display()
display(ageArray[1], ageArray[2]);
Wir können dies in der Funktionsdefinition sehen, wo die Funktionsparameter einzelne Variablen sind:
void display(int age1, int age2) {
// code
}
Beispiel 2:Arrays an Funktionen übergeben
// Program to calculate the sum of array elements by passing to a function
#include <stdio.h>
float calculateSum(float num[]);
int main() {
float result, num[] = {23.4, 55, 22.6, 3, 40.5, 18};
// num array is passed to calculateSum()
result = calculateSum(num);
printf("Result = %.2f", result);
return 0;
}
float calculateSum(float num[]) {
float sum = 0.0;
for (int i = 0; i < 6; ++i) {
sum += num[i];
}
return sum;
}
Ausgabe
Result = 162.50
Um ein ganzes Array an eine Funktion zu übergeben, wird nur der Name des Arrays als Argument übergeben.
result = calculateSum(num);
Beachten Sie jedoch die Verwendung von []
in der Funktionsdefinition.
float calculateSum(float num[]) {
... ..
}
Dies informiert den Compiler darüber, dass Sie der Funktion ein eindimensionales Array übergeben.
Mehrdimensionale Arrays an eine Funktion übergeben
Um mehrdimensionale Arrays an eine Funktion zu übergeben, wird nur der Name des Arrays an die Funktion übergeben (ähnlich wie bei eindimensionalen Arrays).
Beispiel 3:Zweidimensionale Arrays übergeben
#include <stdio.h>
void displayNumbers(int num[2][2]);
int main() {
int num[2][2];
printf("Enter 4 numbers:\n");
for (int i = 0; i < 2; ++i) {
for (int j = 0; j < 2; ++j) {
scanf("%d", &num[i][j]);
}
}
// pass multi-dimensional array to a function
displayNumbers(num);
return 0;
}
void displayNumbers(int num[2][2]) {
printf("Displaying:\n");
for (int i = 0; i < 2; ++i) {
for (int j = 0; j < 2; ++j) {
printf("%d\n", num[i][j]);
}
}
}
Ausgabe
Enter 4 numbers: 2 3 4 5 Displaying: 2 3 4 5
Beachten Sie den Parameter int num[2][2]
im Funktionsprototyp und Funktionsdefinition:
// function prototype
void displayNumbers(int num[2][2]);
Dies bedeutet, dass die Funktion ein zweidimensionales Array als Argument akzeptiert. Wir können auch Arrays mit mehr als 2 Dimensionen als Funktionsargument übergeben.
Bei der Übergabe von zweidimensionalen Arrays ist es nicht zwingend erforderlich, die Anzahl der Zeilen im Array anzugeben. Die Anzahl der Spalten sollte jedoch immer angegeben werden.
Zum Beispiel
void displayNumbers(int num[][2]) {
// code
}
Hinweis: In der C-Programmierung können Sie Arrays an Funktionen übergeben, jedoch keine Arrays von Funktionen zurückgeben.
C Sprache