V tomto tutoriáli sa naučíte pomocou príkladov odovzdávať polia (jednorozmerné aj viacrozmerné polia) funkcii v programovaní v jazyku C.
V programovaní C môžete funkciám odovzdať celé pole. Skôr ako sa to dozvieme, pozrime sa, ako môžete jednotlivým prvkom poľa odovzdať funkcie.
Odovzdávanie jednotlivých prvkov poľa
Predávanie prvkov poľa do funkcie je podobné ako odovzdávanie premenných do funkcie.
Príklad 1: Predanie poľa
#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ýkon
8 4
Príklad 2: Predávanie polí funkciá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ýkon
Výsledok = 162,50
Ak chcete funkcii odovzdať celé pole, ako argument sa odovzdá iba názov poľa.
result = calculateSum(age);
Všimnite si však použitie ()
v definícii funkcie.
float calculateSum(float age()) (… )
Toto informuje kompilátor, že funkcii odovzdávate jednorozmerné pole.
Posielanie viacrozmerných polí do funkcie
Na odovzdanie viacrozmerných polí do funkcie sa funkcii odovzdá iba názov poľa (podobne ako jednorozmerné polia).
Príklad 3: Prechádzanie dvojrozmerný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ýkon
Zadajte 4 čísla: 2 3 4 5 Zobrazujem: 2 3 4 5
Poznámka: V programovaní C môžete maticiam odovzdávať funkcie, avšak nemôžete ich vracať z funkcií.