НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ
Мова програмування C. Уроки W3Schools для початківців українською мовою

En Es De

C Масиви


Масиви

Масиви використовуються для зберігання кількох значень в одній змінній замість оголошення окремих змінних для кожного значення.

Щоб створити масив, визначте тип даних (наприклад, int) і вкажіть назву масиву, а потім квадратні дужки [].

Щоб вставити в нього значення, використовуйте список, розділений комами, у фігурних дужках:

int myNumbers[] = {25, 50, 75, 100};

Тепер ми створили змінну, яка містить масив із чотирьох цілих чисел.


Доступ до елементів масиву

Щоб отримати доступ до елемента масиву, зверніться до його номера індексу.

Індекси масиву починаються з 0: [0] є першим елементом. [1] – другий елемент тощо.

Ця інструкція отримує доступ до значення першого елемента [0] у myNumbers:

Приклад

int myNumbers[] = {25, 50, 75, 100};
printf("%d", myNumbers[0]);

// Виведе 25
Спробуйте самі »

Змінити елемент масиву

Щоб змінити значення певного елемента, зверніться до номера індексу:

Приклад

myNumbers[0] = 33;

Приклад

int myNumbers[] = {25, 50, 75, 100};
myNumbers[0] = 33;

printf("%d", myNumbers[0]);

// Тепер виводить 33 замість 25
Спробуйте самі »

Цикл по масиву

Ви можете прокручувати елементи масиву за допомогою циклу for.

У наступному прикладі виводяться всі елементи в масиві myNumbers:

Приклад

int myNumbers[] = {25, 50, 75, 100};
int i;

for (i = 0; i < 4; i++) {
  printf("%d\n", myNumbers[i]);
}
Спробуйте самі »

Установіть розмір масиву

Іншим поширеним способом створення масивів є визначення розміру масиву та додавання елементів пізніше:

Приклад

// Оголошіть масив із чотирьох цілих чисел:
int myNumbers[4];

// Add elements
myNumbers[0] = 25;
myNumbers[1] = 50;
myNumbers[2] = 75;
myNumbers[3] = 100;
Спробуйте самі »

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

Ви не можете змінити розмір масиву після створення.


Отримати розмір або довжину масиву

Щоб отримати розмір масиву, можна скористатися оператором sizeof:

Приклад

int myNumbers[] = {10, 25, 50, 75, 100};
printf("%lu", sizeof(myNumbers)); // виведе 20
Спробуйте самі »

Чому в результаті показано 20 замість 5, коли масив містить 5 елементів?

— Це тому, що оператор sizeof повертає розмір типу в байтах.

Із розділу Типи даних ви дізналися, що тип int зазвичай має 4 байти, тому в прикладі вище 4 x 5 (4 байти x 5 елементів) = 20 байтів.

Знання розміру пам’яті масиву корисно, коли ви працюєте з великими програмами, які потребують належного керування пам’яттю.

Але якщо ви просто хочете дізнатися, скільки елементів має масив, ви можете скористатися такою формулою (яка ділить розмір масиву на розмір одного елемента масиву):

Приклад

int myNumbers[] = {10, 25, 50, 75, 100};
int length = sizeof(myNumbers) / sizeof(myNumbers[0]);

printf("%d", length);  // виведе 5
Спробуйте самі »

Створення кращих циклів

У розділі циклів масиву вище ми записали розмір масиву в умові циклу (i < 4). Це не ідеально, оскільки працюватиме лише для масивів указаного розміру.

Однак, використовуючи формулу sizeof із наведеного вище прикладу, ми можемо створювати цикли, які працюють для масивів будь-якого розміру, що є більш ефективним.

Замість того, щоб писати:

Приклад

int myNumbers[] = {25, 50, 75, 100};
int i;

for (i = 0; i < 4; i++) {
  printf("%d\n", myNumbers[i]);
}
Спробуйте самі »

Краще написати:

Приклад

int myNumbers[] = {25, 50, 75, 100};
int length = sizeof(myNumbers) / sizeof(myNumbers[0]);
int i;

for (i = 0; i < length; i++) {
  printf("%d\n", myNumbers[i]);
}
Спробуйте самі »

Приклад із реального життя

Щоб продемонструвати практичний приклад використання масивів, давайте створимо програму, яка обчислює середнє значення для різних вікових груп:

Приклад

// Масив, що зберігає різні віки
int ages[] = {20, 22, 18, 35, 48, 26, 87, 70};

float avg, sum = 0;
int i;

// Отримати довжину масиву
int length = sizeof(ages) / sizeof(ages[0]);

// Перебрати елементи масиву
for (int i = 0; i < length; i++) {
  sum += ages[i];
}

// Обчислити середнє значення, поділивши суму на довжину
avg = sum / length;

// Вивести середнє значення
printf("Середній вік складає: %.2f", avg);
Спробуйте самі »

C Вправи

Перевірте себе за допомогою вправ

Вправа:

Створіть масив типу int myNumbers.

   {25, 50, 75, 100};