У цьому уроці ми навчимося працювати з масивами. Ми навчимося декларувати, ініціалізувати та отримувати доступ до елементів масиву в програмуванні на C ++ за допомогою прикладів.
У C ++ масив - це змінна, яка може зберігати кілька значень одного типу. Наприклад,
Припустимо, у класі навчається 27 учнів, і нам потрібно зберігати оцінки всіх них. Замість того, щоб створювати 27 окремих змінних, ми можемо просто створити масив:
double grade(27);
Тут оцінка - це масив, що вміщує максимум 27 елементів double
типу.
У C ++ розмір і тип масивів не можна змінювати після його оголошення.
Декларація масиву C ++
dataType arrayName(arraySize);
Наприклад,
int x(6);
Ось,
int
- тип елемента, що зберігається- x - ім'я масиву
6
- розмір масиву
Елементи доступу в масиві C ++
У C ++ кожен елемент масиву пов'язаний з числом. Число називається індексом масиву. Ми можемо отримати доступ до елементів масиву, використовуючи ці індекси.
// syntax to access array elements array(index);
Розглянемо масив x, який ми бачили вище.

Кілька речей, які слід пам’ятати:
- Індекси масивів починаються з
0
. Значення x (0) - це перший елемент, що зберігається в індексі0
. - Якщо розмір масиву дорівнює
n
, останній елемент зберігається в індексі(n-1)
. У цьому прикладі x (5) є останнім елементом. - Елементи масиву мають послідовні адреси. Наприклад, припустимо, що початкова адреса
x(0)
- 2120d. Тоді адреса наступного елементаx(1)
буде 2124d, адресаx(2)
2128d тощо.
Тут розмір кожного елемента збільшується на 4. Це тому, що розмірint
дорівнює 4 байтам.
Ініціалізація масиву C ++
У C ++ можна ініціалізувати масив під час оголошення. Наприклад,
// declare and initialize and array int x(6) = (19, 10, 8, 17, 9, 15);

Інший метод ініціалізації масиву під час оголошення:
// declare and initialize an array int x() = (19, 10, 8, 17, 9, 15);
Тут ми не згадували розмір масиву. У таких випадках компілятор автоматично обчислює розмір.
Масив C ++ з порожніми членами
У C ++, якщо масив має розмір n
, ми можемо зберігати до n кількості елементів у масиві. Однак що станеться, якщо ми збережемо менше n елементів.
Наприклад,
// store only 3 elements in the array int x(6) = (19, 10, 8);
Тут масив x має розмір 6
. Однак ми ініціалізували його лише 3 елементами.
У таких випадках компілятор призначає випадкові значення іншим місцям. Часто це випадкове значення просто 0
.

Як вставити та надрукувати елементи масиву?
int mark(5) = (19, 10, 8, 17, 9) // change 4th element to 9 mark(3) = 9; // take input from the user // store the value at third position cin>> mark(2); // take input from the user // insert at ith position cin>> mark(i-1); // print first element of the array cout <> mark(i-1);
Приклад 1: Відображення елементів масиву
#include using namespace std; int main() ( int numbers(5) = (7, 5, 6, 12, 35); cout << "The numbers are: "; // Printing array elements // using range based for loop for (const int &n : numbers) ( cout << n << " "; ) cout << "The numbers are: "; // Printing array elements // using traditional for loop for (int i = 0; i < 5; ++i) ( cout << numbers(i) << " "; ) return 0; )
Вихідні дані
Цифри: 7 5 6 12 35 Цифри: 7 5 6 12 35
Тут ми використовували for
цикл для ітерації від i = 0
до i = 4
. У кожній ітерації ми друкували numbers(i)
.
Ми знову використали діапазон, заснований на циклі для друку елементів масиву. Щоб дізнатись більше про цей цикл, перевірте C ++ Ranged for Loop.
Примітка: У нашому циклі на основі діапазону ми використовували код, const int &n
а не int n
як декларацію діапазону. Однак цей const int &n
варіант є кращим, оскільки:
- За допомогою
int n
простого копіювання елементів масиву до змінної n під час кожної ітерації. Це не ефективно для пам'яті.
& n, однак, використовує адресу пам'яті елементів масиву для доступу до їх даних, не копіюючи їх до нової змінної. Це ефективно для пам'яті. - Ми просто друкуємо елементи масиву, а не змінюємо їх. Тому ми використовуємо
const
, щоб випадково не змінити значення масиву.
Приклад 2: беруть вхідні дані від користувача та зберігають їх у масиві
#include using namespace std; int main() ( int numbers(5); cout << "Enter 5 numbers: " << endl; // store input from user to array for (int i = 0; i > numbers(i); ) cout << "The numbers are: "; // print array elements for (int n = 0; n < 5; ++n) ( cout << numbers(n) << " "; ) return 0; )
Вихідні дані
Enter 5 numbers: 11 12 13 14 15 The numbers are: 11 12 13 14 15
Once again, we have used a for
loop to iterate from i = 0
to i = 4
. In each iteration, we took an input from the user and stored it in numbers(i)
.
Then, we used another for
loop to print all the array elements.
Example 3: Display Sum and Average of Array Elements Using for Loop
#include using namespace std; int main() ( // initialize an array without specifying size double numbers() = (7, 5, 6, 12, 35, 27); double sum = 0; double count = 0; double average; cout << "The numbers are: "; // print array elements // use of range-based for loop for (const double &n : numbers) ( cout << n << " "; // calculate the sum sum += n; // count the no. of array elements ++count; ) // print the sum cout << "Their Sum = " << sum << endl; // find the average average = sum / count; cout << "Their Average = " << average << endl; return 0; )
Output
The numbers are: 7 5 6 12 35 27 Their Sum = 92 Their Average = 15.3333
In this program:
- We have initialized a double array named numbers but without specifying its size. We also declared three double variables sum, count, and average.
Here,sum =0
andcount = 0
. - Then we used a range based
for
loop to print the array elements. In each iteration of the loop, we add the current array element to sum. - Ми також збільшуємо значення count на
1
кожній ітерації, щоб ми могли отримати розмір масиву до кінця циклу for. - Після друку всіх елементів ми друкуємо суму та середнє значення всіх чисел. Середнє значення чисел дано
average = sum / count;
Примітка. Ми використовували діапазонний for
цикл замість звичайного for
.
Нормальний for
цикл вимагає від нас ідентифікації кількості ітерацій, яка задається розміром масиву.
Але діапазонний for
цикл не вимагає таких специфікацій.
Масив C ++ поза межами
Якщо ми оголосимо масив розміром 10, то масив буде містити елементи від індексу 0 до 9.
Однак, якщо ми спробуємо отримати доступ до елемента з індексом 10 або більше 10, це призведе до невизначеної поведінки.