У C++ масив — це структура даних, яка використовується для зберігання кількох значень подібних типів даних у безперервній області пам’яті.
Наприклад , якщо нам потрібно зберегти оцінки 4 або 5 студентів, ми можемо легко зберегти їх, створивши 5 різних змінних, але що, якщо ми хочемо зберегти оцінки 100 студентів або, скажімо, 500 студентів, тоді стає дуже складно створити таку кількість змінних і керувати ними. Тепер з’являються масиви, які можуть зробити це легко, просто створивши масив потрібного розміру.

Властивості масивів у C++
- Масив — це набір даних одного типу, що зберігається в безперервній точці пам’яті.
- Індексація масиву починається з 0. Це означає, що перший елемент зберігається під 0-м індексом, другий – під 1-м і так далі.
- Доступ до елементів масиву можна отримати за допомогою їх індексів.
- Після того, як масив оголошено, його розмір залишається незмінним протягом всієї програми.
- Масив може мати декілька вимірів.
- Розмір масиву в байтах можна визначити за допомогою оператора sizeof, за допомогою якого ми також можемо знайти кількість елементів у масиві.
- Ми можемо знайти розмір типу елементів, що зберігаються в масиві, віднімаючи сусідні адреси.
Оголошення масиву в C++
У C++ ми можемо оголосити масив, просто вказавши спочатку тип даних, а потім назву масиву з його розміром.
data_type array_name[Size_of_array];>
приклад
int arr[5];>
тут,
- int: Це тип даних, які будуть зберігатися в масиві. Ми також можемо використовувати інші типи даних, такі як char, float і double.
- прибуття: Це ім'я масиву.
- 5: Це розмір масиву, який означає, що в масиві можна зберігати лише 5 елементів.

Ініціалізація масиву в C++
У C++ ми можемо ініціалізувати масив багатьма способами, але ми обговоримо деякі найпоширеніші способи ініціалізації масиву. Ми можемо ініціалізувати масив під час оголошення або після оголошення.
1. Ініціалізація масиву значеннями в C++
Ми ініціалізували масив зі значеннями. Значення, укладені у фігурні дужки ‘{}’, присвоюються масиву. Тут 1 зберігається в arr[0], 2 в arr[1] і так далі. Тут розмір масиву 5.
int arr[5] = {1, 2, 3, 4, 5};>2. Ініціалізація масиву зі значеннями та без розміру в C++
Ми ініціалізували масив значеннями, але не оголосили довжину масиву, тому довжина масиву дорівнює кількості елементів у фігурних дужках.
проста програма на пітоні
int arr[] = {1, 2, 3, 4, 5};>3. Ініціалізація масиву після оголошення (з використанням циклів)
Ми ініціалізували масив за допомогою циклу після оголошення масиву. Цей метод зазвичай використовується, коли ми хочемо отримати дані від користувача або ми не можемо призначити елементи по одному кожному індексу масиву. Ми можемо змінити умови циклу або змінити значення ініціалізації відповідно до вимог.
for (int i = 0; i arr[i] = value; }>
4. Частково ініціалізуйте масив у C++
Тут ми оголосили масив «partialArray» розміром «5» і лише значеннями «1» і «2». Отже, ці значення зберігаються за першими двома індексами, а за рештою індексів зберігається «0».
int partialArray[5] = {1, 2};>5. Ініціалізуйте масив нулем у C++
Ми можемо ініціалізувати масив з усіма елементами як «0», вказавши «0» у фігурних дужках. Це станеться у випадку нуля, лише якщо ми спробуємо ініціалізувати масив іншим значенням, скажімо, «2» за допомогою цього методу, тоді «2» зберігається лише під 0-м індексом.
int zero_array[5] = {0};>Доступ до елемента масиву в C++
Доступ до елементів масиву можна отримати, вказавши ім’я масиву, а потім індекс елемента, укладеного в оператор нижнього індексу масиву []. Наприклад, arr[i].
Приклад 1: Програма C++ для ілюстрації доступу до елементів масиву
C++ // C++ Program to Illustrate How to Access Array Elements #include using namespace std; int main() { int arr[3]; // Inserting elements in an array arr[0] = 10; arr[1] = 20; arr[2] = 30; // Accessing and printing elements of the array cout << 'arr[0]: ' << arr[0] << endl; cout << 'arr[1]: ' << arr[1] << endl; cout << 'arr[2]: ' << arr[2] << endl; return 0; }> Вихід
arr[0]: 10 arr[1]: 20 arr[2]: 30>
Оновити елемент масиву
Щоб оновити елемент у масиві, ми можемо використати індекс, який ми хочемо оновити, усередині оператора нижнього індексу масиву та призначити нове значення.
arr[i] = new_value;>
Обхід масиву в C++
Ми можемо переходити по масиву за допомогою циклу використання індексації в C++. Спочатку ми ініціалізували масив «table_of_two» кратним 2. Після цього ми запускаємо цикл for від 0 до 9, оскільки в масиві індексація починається з нуля. Тому, використовуючи індекси, ми друкуємо всі значення, що зберігаються в масиві.
Приклад 2: Програма на C++ для ілюстрації проходження масиву
C++ // C++ Program to Illustrate How to Traverse an Array #include using namespace std; int main() { // Initialize the array int table_of_two[10] = { 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 }; // Traverse the array using for loop for (int i = 0; i < 10; i++) { // Print the array elements using indexing cout << table_of_two[i] << ' '; } return 0; }> Вихід
2 4 6 8 10 12 14 16 18 20>
Розмір масиву в C++
У C++ ми не маємо функції length, як у Java, щоб знайти розмір масиву, але ми можемо обчислити розмір масиву за допомогою оператора sizeof(). трюк. Спочатку ми знаходимо розмір, який займає весь масив у пам’яті, а потім ділимо його на розмір типу елемента, що зберігається в масиві. Це дасть нам кількість елементів, що зберігаються в масиві.
data_type size = sizeof(Array_name) / sizeof(Array_name[index]);>
Приклад 3: Програма C++ для ілюстрації того, як знайти розмір масиву
C++ // C++ Program to Illustrate How to Find the Size of an // Array #include using namespace std; int main() { int arr[] = { 1, 2, 3, 4, 5 }; // Size of one element of an array cout << 'Size of arr[0]: ' << sizeof(arr[0]) << endl; // Size of array 'arr' cout << 'Size of arr: ' << sizeof(arr) << endl; // Length of an array int n = sizeof(arr) / sizeof(arr[0]); cout << 'Length of an array: ' << n << endl; return 0; }> Вихід
Size of arr[0]: 4 Size of arr: 20 Length of an array: 5>
Зв’язок між масивами та покажчиками в C++
У C++ масиви та покажчики тісно пов’язані один з одним. Ім'я масиву розглядається як покажчик, який зберігає адресу пам'яті першого елемента масиву. Як ми обговорювали раніше, елементи масиву In зберігаються в безперервних розташуваннях пам’яті, тому ми можемо отримати доступ до всіх елементів масиву за допомогою імені масиву.
Приклад 4: Ілюстрація зв’язку між масивом і покажчиками
C++ // C++ Program to Illustrate that Array Name is a Pointer // that Points to First Element of the Array #include using namespace std; int main() { // Defining an array int arr[] = { 1, 2, 3, 4 }; // Define a pointer int* ptr = arr; // Printing address of the arrary using array name cout << 'Memory address of arr: ' << &arr << endl; // Printing address of the array using ptr cout << 'Memory address of arr: ' << ptr << endl; return 0; }> Вихід
Memory address of arr: 0x7fff2f2cabb0 Memory address of arr: 0x7fff2f2cabb0>
Пояснення:
У наведеному вище коді ми спочатку визначаємо масив обр а потім оголосити покажчик птр і призначте йому масив arr. Ми можемо призначити arr для ptr, оскільки arr також є вказівником. Після цього друкуємо адресу пам'яті обр використання оператора посилання ( & ), а також надрукувати адресу, збережену в покажчику птр і ми можемо побачити arr і ptr, обидва зберігають ту саму адресу пам’яті.
Приклад 5: Друк елементів масиву без індексування в C++
Зазвичай ми отримуємо доступ і друкуємо елементи масиву за допомогою індексування. Наприклад, щоб отримати доступ до першого елемента, який ми використовуємо назва_масиву[0]. Вище ми обговорювали, що ім’я масиву – це покажчик, який зберігає адресу першого елемента, а елементи масиву зберігаються в безперервних місцях. Тепер ми збираємося отримати доступ до елементів масиву, використовуючи лише назву масиву.
C++ // C++ Program to Print Array Elements without Indexing #include using namespace std; int main() { // Define an array int arr[] = { 11, 22, 33, 44 }; // Print elements of an array cout << 'first element: ' << *arr << endl; cout << 'Second element: ' << *(arr + 1) << endl; cout << 'Third element: ' << *(arr + 2) << endl; cout << 'fourth element: ' << *(arr + 3) << endl; return 0; }> Вихід
first element: 11 Second element: 22 Third element: 33 fourth element: 44>
Пояснення
У наведеному вище коді ми спочатку оголосили масив обр з чотирма елементами. Після цього друкуємо елементи масиву. Давайте обговоримо, як ми це робимо. Ми обговорювали, що ім’я масиву – це вказівник, який зберігає адресу першого елемента масиву, тому, щоб надрукувати перший елемент, ми розіменували цей вказівник (*arr) за допомогою оператора розіменування (*) який друкує дані, що зберігаються за цією адресою.
Щоб надрукувати другий елемент масиву, ми спочатку додаємо 1 до обр що еквівалентно (address of arr + size_of_one_element *1), що приймає вказівник на адресу відразу після першого, а після цього ми розіменовуємо цей вказівник для друку другого елемента. Подібним чином ми друкуємо решту елементів масиву без використання індексації.
Передача масиву у функцію в C++
Щоб ефективно використовувати масиви, ми повинні знати, як передавати масиви функції. Ми можемо передавати масиви функціям як аргумент так само, як ми передаємо змінні функціям, але ми знаємо, що ім’я масиву розглядається як вказівник, використовуючи цю концепцію, ми можемо передати масив функціям як аргумент, а потім отримати доступ до всіх елементів цього масиву за допомогою покажчик.
Тож зрештою, масиви завжди передаються як покажчики на функцію. Давайте розглянемо 3 способи передачі масиву функції, які найчастіше використовуються.
1. Передача масиву як покажчика
У цьому методі ми просто передаємо назву масиву під час виклику функції, що означає, що ми передаємо адресу до першого елемента масиву. У цьому методі ми можемо змінювати елементи масиву всередині функції.
Синтаксис
return_type function_name ( data_type *array_name ) { // set of statements }>2. Передача масиву як нерозмірного масиву
У цьому методі функція приймає масив за допомогою простого оголошення масиву без розміру як аргументу.
Синтаксис
return_type function_name ( data_type array_name[] ) { // set of statements }>3. Передача масиву як масиву розміру
У цьому методі функція приймає масив за допомогою простого оголошення масиву з розміром як аргументом. Ми використовуємо цей метод, змінюючи розмір масиву лише для вказівки розміру масиву.
Синтаксис
return_type function_name(data_type array_name[size_of_array]){ // set of statements }> Примітка: Масив розглядатиметься як покажчик у переданій функції незалежно від того, який метод ми використовуємо. Коли масив передається як вказівник, він втрачає інформацію про його розмір, що призводить до явища під назвою Розпад масиву.
Приклад: ілюстрація різних способів передачі масивів у функцію
C++ #include using namespace std; // passing array as a sized array argument void printArraySized(int arr[3], int n) { cout << 'Array as Sized Array Argument: '; for (int i = 0; i < n; i++) { cout << arr[i] << ' '; } cout << endl; } // passing array as an unsized array argument void printArrayUnsized(int arr[], int n) { cout << 'Array as Unsized Array Argument: '; for (int i = 0; i < n; i++) { cout << *(arr + i) << ' '; } cout << endl; } // Passing array as a pointer argument void printArrayPointer(int* ptr, int n) { // Print array elements using pointer ptr // that store the address of array passed cout << 'Array as Pointer Argument: '; for (int i = 0; i < n; i++) { cout << ptr[i] << ' '; } } // driver code int main() { int arr[] = { 10, 20, 30 }; // Call function printArray and pass // array and its size to it. printArraySized(arr, 3); printArrayUnsized(arr, 3); printArrayPointer(arr, 3); return 0; }> Вихід
Array as Sized Array Argument: 10 20 30 Array as Unsized Array Argument: 10 20 30 Array as Pointer Argument: 10 20 30>
Багатовимірні масиви в C++
Масиви, оголошені з більш ніж одним виміром, називаються багатовимірними масивами. Найбільш широко використовуваними багатовимірними масивами є 2D-масиви та 3D-масиви. Ці масиви, як правило, представлені у вигляді рядків і стовпців.
Оголошення багатовимірного масиву
Data_Type Array_Name[Size1][Size2]...[SizeN];>
де,
- Тип даних: Тип даних, які будуть зберігатися в масиві.
- Назва_масиву: Назва масиву.
- Розмір1, Розмір2,…, РозмірN: Розмір кожного виміру.
Двовимірний масив у C++
У C++ двовимірний масив — це групування елементів, розташованих у рядках і стовпцях. Доступ до кожного елемента здійснюється за допомогою двох індексів: один для рядка та інший для стовпця, що дозволяє легко візуалізувати його як таблицю або сітку.
Синтаксис 2D масиву
data_Type array_name[n][m];>
Де,
- n: Кількість рядів.
- м: Кількість колон.

Приклад: програма C++ для ілюстрації двовимірного масиву
C++ // c++ program to illustrate the two dimensional array #include using namespace std; int main() { // Declaring 2D array int arr[4][4]; // Initialize 2D array using loop for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { arr[i][j] = i + j; } } // Printing the element of 2D array for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { cout << arr[i][j] << ' '; } cout << endl; } return 0; }> Вихід
0 1 2 3 1 2 3 4 2 3 4 5 3 4 5 6>
Пояснення
У наведеному вище коді ми оголосили 2D-масив із 4 рядками та 4 стовпцями, після чого ми ініціалізували масив значенням (i+j) у кожній ітерації циклу. Потім ми друкуємо 2D-масив за допомогою вкладеного циклу, і ми бачимо в наведеному нижче виході, що є 4 рядки та 4 стовпці.
Тривимірний масив у C++
Тривимірний масив використовує три виміри. Для його представлення можна використовувати набір різноманітних двовимірних масивів, нагромаджених один на одного. Три індекси: індекс рядка, індекс стовпця та індекс глибини використовуються для унікальної ідентифікації кожного елемента в 3D-масиві.
Оголошення тривимірного масиву в C++
Щоб оголосити 3D-масив у C++, нам потрібно вказати його третій вимір разом із 2D-вимірами.
Data_Type Array_Name[D][R][C];>
Де,
- Тип даних: Тип даних, які будуть зберігатися в кожному елементі.
- Назва_масиву: Назва масиву
- D: Кількість двовимірних масивів або глибина масиву.
- Р: Кількість рядків у кожному двовимірному масиві.
- C: Кількість стовпців у кожному двовимірному масиві.
приклад
int array[3][3][3];>

Приклад: програма C++ для ілюстрації тривимірного масиву
C++ // C++ program to illustrate the 3d array #include using namespace std; int main() { // declaring 3d array int arr[3][3][3]; // initializing the array for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { for (int k = 0; k < 3; k++) { arr[i][j][k] = i + j + k; } } } // printing the array for (int i = 0; i < 3; i++) { cout << i << 'st layer:' << endl; for (int j = 0; j < 3; j++) { for (int k = 0; k < 3; k++) { cout << arr[i][j][k] << ' '; } cout << endl; } cout << endl; } return 0; }> Вихід
0st layer: 0 1 2 1 2 3 2 3 4 1st layer: 1 2 3 2 3 4 3 4 5 2st layer: 2 3 4 3 4 5 4 5 6>
Пояснення
У наведеному вище коді ми оголосили тривимірний масив, а потім ініціалізували його за допомогою трьох вкладених циклів for. Після цього ми знову надрукували всі шари 3D-масиву, використовуючи три вкладені цикли for, як видно на виході.
Схожі статті
- Багатовимірні масиви в C++
- Властивості масиву
- Розпад масиву
