Передати масиви функції в C

У цьому посібнику ви навчитесь передавати масиви (одновимірні та багатовимірні масиви) функції у програмуванні на С за допомогою прикладів.

У програмуванні на С ви можете передавати цілий масив функціям. Перш ніж ми це дізнаємось, давайте подивимося, як ви можете передавати окремі елементи масиву функціям.

Передача окремих елементів масиву

Передача елементів масиву функції подібна до передачі змінних функції.

Приклад 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 

Примітка: У програмуванні на С ви можете передавати масиви функціям, однак ви не можете повертати масиви з функцій.

Цікаві статті...