Масиви як параметри функцій

Масиви можна використовувати як параметри функцій. Нагадаємо, що передача аргументів у функцію здійснюється:

  • за значенням;
  • через посилання;
  • через покажчики.

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

В С++ масиви завжди передаються функціями через покажчики. Це пов’язано з тим, що ім’я масиву є покажчиком на його перший елемент:

В результаті виконання програми побачимо, що і по імені масиву  mas, і по адресі першого елемента &mas[0] виводиться та ж сама адреса комірки пам’яті:

Разом з покажчиком на масив слід передавати кількість елементів масиву, тому що покажчик на масив визначає адресу його першого елемента, а обсяг пам’яті, що її займає масив, визначатиметься кількістю елементів. Використання адрес елементів масиву забезпечує можливість безпосередньо змінювати їх вміст.

Наприклад. Заповнити масив цілими числами від 1 до n:

У визначенні функції параметр int mas[] визначає покажчик на масив, параметр int n – кількість елементів масиву, яка буде оброблена. Розмір масиву в квадратних дужках писати не потрібно, компілятор його буде ігнорувати.

Для того, щоб викликати функцію з параметром масивом необхідно вказати в якості параметру функції тільки назву масиву без дужок: fillMass (mas, n).

Примітка! Виклик функції fillMass(mass[n], size) передасть у функцію не масив, а значення елемента з індексом n, що викличе помилку компілятора.

Синтаксис посилань у вигляді & не застосовується до імені масиву під час оголошення його у функції.

 

 

1+

6 thoughts on “Масиви як параметри функцій

  1. Heard good things about the Live789 Club. Hoping to check it out soon and see if the hype is real. Anyone got tips or know if they offer a good loyalty program Would appreciate the insider scoop before I dive in A live789 club

    0
  2. ABC777Login is pretty straightforward to use, which I appreciate. No hassles getting in, and they’ve got a decent selection. Not my favorite site ever, but reliable. Try them here: abc777login

    0

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься.