Перейти к основному содержимому

Массивы

Массив как набор переменных с общим именем

Массив — это набор переменных одного типа под общим именем. У каждой ячейки есть номер, который называется индексом. Массив удобен, когда нужно хранить несколько похожих значений: показания датчиков, команды моторов или оценки за попытки.

Коротко

Индексы массива начинаются с нуля. Если размер массива равен 5, допустимые индексы: 0, 1, 2, 3, 4. Перед чтением ячейки ей нужно задать значение.

Массив как набор ячеек

имя:      a
индекс: 0 1 2 3
значение: 10 20 30 40

Объявление массива:

int a[4] = {10, 20, 30, 40};

Здесь создан массив из четырёх целых чисел.

Первый пример

#include <iostream>
using namespace std;

int main() {
int a[3] = {10, 20, 30};

cout << a[0] << endl;
cout << a[1] << endl;
cout << a[2] << endl;
return 0;
}

Вывод:

10
20
30

Индекс 3 в этом массиве уже запрещён. Последний индекс равен 2, потому что счёт начинается с нуля.

Изменение ячейки

#include <iostream>
using namespace std;

int main() {
int a[3] = {10, 20, 30};

a[1] = 99;

cout << a[0] << endl;
cout << a[1] << endl;
cout << a[2] << endl;
return 0;
}

Вывод:

10
99
30

Ячейка массива ведёт себя как обычная переменная своего типа.

Перед чтением задайте значения

Плохой пример:

#include <iostream>
using namespace std;

int main() {
int a[3];
cout << a[0] << endl;
return 0;
}

Значение a[0] не задано. На одних системах можно случайно увидеть 0, на других — мусорное число. На микроконтроллерах такая ошибка особенно опасна.

Правильно:

#include <iostream>
using namespace std;

int main() {
int a[3] = {0, 0, 0};
cout << a[0] << endl;
return 0;
}

Меньше значений, чем ячеек

int a[4] = {5, 6};

Первые две ячейки получат 5 и 6, остальные будут заполнены нулями. Но лучше для первых программ записывать все значения явно, чтобы не гадать, что произошло.

Массивы и роли

#include <iostream>
using namespace std;

int main() {
int power[2] = {80, 75};

cout << "left = " << power[0] << endl;
cout << "right = " << power[1] << endl;
return 0;
}

Здесь power[0] — левый мотор, power[1] — правый мотор. В маленьком примере это допустимо. В большой программе лучше использовать понятные структуры или классы, но они будут изучаться позже.

Что пока не делаем

В этом уроке мы не используем циклы, функции и дополнительные библиотеки. Циклы появятся позже и помогут обрабатывать массивы короче. Сейчас важно понять саму идею: массив — это несколько ячеек с индексами.

Практика

  1. Создайте массив a из трёх чисел и выведите все ячейки.
  2. Измените вторую ячейку и снова выведите массив.
  3. Создайте массив power из двух значений для левого и правого мотора.
  4. Нарисуйте массив из пяти ячеек и подпишите индексы.
  5. Объясните, почему индекс 5 запрещён для массива размера 5.

Проверьте себя

  1. Что такое массив?
  2. С какого индекса начинается массив в C++?
  3. Какой последний индекс у массива из четырёх элементов?
  4. Почему нельзя читать незаданную ячейку?
  5. Как изменить значение одной ячейки?
Ориентиры для самопроверки

Сначала ответьте без подсказки. Ответ можно считать полным, если вы:

  • формулируете основную мысль своими словами;
  • называете важные условия, ограничения или меры безопасности;
  • для схемы, кода или расчёта показываете ход решения и ожидаемый результат.

Если один из пунктов объяснить не получается, найдите соответствующую главу статьи, перечитайте её и повторите ответ.

Словарь статьи

ТерминЗначение
массивнабор однотипных ячеек под одним именем
элементодна ячейка массива
индексномер элемента
размерколичество элементов в массиве
выход за границуобращение к несуществующему индексу

Связанные темы

Источники