In diesem Tutorial lernen Sie anhand von Beispielen, Arrays (sowohl eindimensionale als auch mehrdimensionale Arrays) an eine Funktion in der C-Programmierung zu übergeben.
In der C-Programmierung können Sie ein gesamtes Array an Funktionen übergeben. Bevor wir das lernen, wollen wir uns ansehen, wie Sie einzelne Elemente eines Arrays an Funktionen übergeben können.
Übergabe einzelner Array-Elemente
Das Übergeben von Array-Elementen an eine Funktion ähnelt dem Übergeben von Variablen an eine Funktion.
Beispiel 1: Übergeben eines Arrays
#include void display(int age1, int age2) ( printf("%d", age1); printf("%d", age2); ) int main() ( int ageArray() = (2, 8, 4, 12); // Passing second and third elements to display() display(ageArray(1), ageArray(2)); return 0; )
Ausgabe
8 4
Beispiel 2: Übergeben von Arrays an Funktionen
// Program to calculate the sum of array elements by passing to a function #include float calculateSum(float age()); int main() ( float result, age() = (23.4, 55, 22.6, 3, 40.5, 18); // age array is passed to calculateSum() result = calculateSum(age); printf("Result = %.2f", result); return 0; ) float calculateSum(float age()) ( float sum = 0.0; for (int i = 0; i < 6; ++i) ( sum += age(i); ) return sum; )
Ausgabe
Ergebnis = 162,50
Um ein gesamtes Array an eine Funktion zu übergeben, wird nur der Name des Arrays als Argument übergeben.
result = calculateSum(age);
Beachten Sie jedoch die Verwendung von ()
in der Funktionsdefinition.
float calculateSum(float age()) (… )
Dies informiert den Compiler darüber, dass Sie ein eindimensionales Array an die Funktion übergeben.
Übergeben mehrdimensionaler Arrays an eine Funktion
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: Übergeben von zweidimensionalen Arrays
#include void displayNumbers(int num(2)(2)); int main() ( int num(2)(2); printf("Enter 4 numbers:"); for (int i = 0; i < 2; ++i) for (int j = 0; j < 2; ++j) scanf("%d", &num(i)(j)); // passing multi-dimensional array to a function displayNumbers(num); return 0; ) void displayNumbers(int num(2)(2)) ( printf("Displaying:"); for (int i = 0; i < 2; ++i) ( for (int j = 0; j < 2; ++j) ( printf("%d", num(i)(j)); ) ) )
Ausgabe
Geben Sie 4 Zahlen ein: 2 3 4 5 Anzeige: 2 3 4 5
Hinweis: In der C-Programmierung können Sie Arrays an Funktionen übergeben, jedoch keine Arrays von Funktionen zurückgeben.