U ovom vodiču naučit ćete prosljeđivati nizove (jednodimenzionalne i višedimenzionalne nizove) funkciji u programiranju na C uz pomoć primjera.
U programiranju na C funkcijama možete proslijediti čitav niz. Prije nego što to naučimo, pogledajmo kako pojedine elemente niza možete proslijediti funkcijama.
Prolazak pojedinih elemenata niza
Prosljeđivanje elemenata niza funkciji slično je prosljeđivanju varijabli funkciji.
Primjer 1: Prolazak niza
#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; )
Izlaz
8 4
Primjer 2: Prosljeđivanje polja funkcijama
// 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; )
Izlaz
Rezultat = 162,50
Da bi se čitavom nizu proslijedila funkcija, kao argument prenosi se samo ime niza.
result = calculateSum(age);
Međutim, primijetite upotrebu ()
u definiciji funkcije.
float calculateSum(float age()) (… )
To obavještava kompajler da funkciji prosljeđujete jednodimenzionalni niz.
Prosljeđivanje višedimenzionalnih nizova u funkciju
Da bi se višedimenzionalni nizovi prenijeli u funkciju, samo se ime niza prenosi u funkciju (slično jednodimenzionalnim nizovima).
Primjer 3: Prolazak dvodimenzionalnih nizova
#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)); ) ) )
Izlaz
Unesite 4 broja: 2 3 4 5 Prikaz: 2 3 4 5
Napomena: U programiranju na C možete nizove prenijeti funkcijama, međutim nizove ne možete vratiti iz funkcija.