V tomto kurzu se naučíte předávat pole (jednorozměrná i vícerozměrná pole) funkci v programování v C pomocí příkladů.
V programování v C můžete předat funkcím celé pole. Než se to naučíme, podívejme se, jak můžete předávat jednotlivé prvky pole funkcím.
Předávání jednotlivých prvků pole
Předávání prvků pole do funkce je podobné jako předávání proměnných do funkce.
Příklad 1: Předání pole
#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; )
Výstup
8 4
Příklad 2: Předávání polí funkcím
// 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; )
Výstup
Výsledek = 162,50
Chcete-li funkci předat celé pole, předá se jako argument pouze název pole.
result = calculateSum(age);
Všimněte si však použití ()
v definici funkce.
float calculateSum(float age()) (… )
Toto informuje kompilátor, že funkci předáváte jednorozměrné pole.
Předávání vícerozměrných polí funkci
Chcete-li funkci předat vícerozměrná pole, do funkce se předá pouze název pole (podobně jako jednorozměrná pole).
Příklad 3: Předávání dvourozměrných polí
#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)); ) ) )
Výstup
Zadejte 4 čísla: 2 3 4 5 Zobrazuji: 2 3 4 5
Poznámka: V programování C můžete předávat pole funkcím, ale nemůžete je vrátit z funkcí.