У овом водичу научићете да преносите низове (и једнодимензионалне и вишедимензионалне низове) функцији у програмирању на Ц уз помоћ примера.
У програмирању на Ц, можете читавом низу пренијети функције. Пре него што то научимо, погледајмо како појединачне елементе низа можете проследити функцијама.
Пролазак појединачних елемената низа
Прослеђивање елемената низа функцији слично је прослеђивању променљивих функцији.
Пример 1: Прослеђивање низа
#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; )
Оутпут
8 4
Пример 2: Прослеђивање низова функцијама
// 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; )
Оутпут
Резултат = 162.50
Да би се читав низ проследио функцији, само се име низа преноси као аргумент.
result = calculateSum(age);
Међутим, обратите пажњу на употребу ()
у дефиницији функције.
float calculateSum(float age()) (… )
Ово обавештава компајлер да функцији прослеђујете једнодимензионални низ.
Прослеђивање вишедимензионалних низова у функцију
Да би се функцији проследили вишедимензионални низови, функцији се преноси само име низа (слично једнодимензионалним низовима).
Пример 3: Пролазак дводимензионалних низова
#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)); ) ) )
Оутпут
Унесите 4 броја: 2 3 4 5 Приказ: 2 3 4 5
Напомена: У програмирању на Ц, можете функцијама проследити низове, међутим низове не можете вратити из функција.