W tym samouczku za pomocą przykładów nauczysz się przekazywać tablice (zarówno jednowymiarowe, jak i wielowymiarowe) do funkcji w programowaniu w języku C.
W programowaniu w C możesz przekazać całą tablicę do funkcji. Zanim się tego nauczymy, zobaczmy, jak można przekazać poszczególne elementy tablicy do funkcji.
Przekazywanie poszczególnych elementów tablicy
Przekazywanie elementów tablicy do funkcji jest podobne do przekazywania zmiennych do funkcji.
Przykład 1: Przekazywanie tablicy
#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; )
Wynik
8 4
Przykład 2: Przekazywanie tablic do funkcji
// 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; )
Wynik
Wynik = 162,50
Aby przekazać całą tablicę do funkcji, jako argument przekazywana jest tylko nazwa tablicy.
result = calculateSum(age);
Zwróć jednak uwagę na użycie ()
w definicji funkcji.
float calculateSum(float age()) (… )
Informuje to kompilator, że przekazujesz do funkcji jednowymiarową tablicę.
Przekazywanie tablic wielowymiarowych do funkcji
Aby przekazać tablice wielowymiarowe do funkcji, do funkcji przekazywana jest tylko nazwa tablicy (podobnie jak tablice jednowymiarowe).
Przykład 3: przekazywanie tablic dwuwymiarowych
#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)); ) ) )
Wynik
Wprowadź 4 cyfry: 2 3 4 5 Wyświetlane: 2 3 4 5
Uwaga: W programowaniu w C możesz przekazywać tablice do funkcji, jednak nie możesz zwracać tablic z funkcji.