Статьи

Учебные материалы по языку C++ — от основ до продвинутых тем

Массивы в C++

Страница 14 из 43 · 2026-10-25 · 1 мин чтения

Массивы в C++

Обычный массив

Массив хранит несколько элементов одного типа подряд. Размер обычного встроенного массива фиксирован:

int scores[5] = {10, 20, 30, 40, 50};std::cout << scores[0] << '\n';

Индексация начинается с нуля. Для массива из пяти элементов допустимы индексы от 0 до 4. Выход за границы массива — ошибка, которая приводит к неопределённому поведению.

Обход массива

int scores[] = {10, 20, 30, 40, 50};for (int score : scores) {    std::cout << score << '\n';}

Размер можно получить во время компиляции для встроенного массива в той же области видимости:

constexpr std::size_t count = sizeof(scores) / sizeof(scores[0]);

Но этот приём не работает как способ определить размер массива, уже переданного в функцию: там параметр обычно становится указателем. Предпочитай std::array или std::vector.

std::array

std::array — контейнер стандартной библиотеки с фиксированным размером и удобными методами:

#include <array>#include <iostream>std::array<int, 3> values{4, 8, 12};std::cout << values.size() << '\n';std::cout << values.at(1) << '\n';

operator[] не проверяет границы, а at() проверяет и при ошибке выбрасывает std::out_of_range.

Двумерные массивы

int board[3][3]{};board[1][2] = 7;

Встроенный двумерный массив — это массив массивов. Для динамического размера и сложных таблиц обычно лучше использовать std::vector.

Массивы и функции

При передаче встроенного массива в функцию информация о его размере обычно теряется. Передавай размер отдельно или используй std::array по ссылке либо std::span для представления диапазона элементов без владения ими.

Итог

Массивы полезны для фиксированного набора однотипных элементов. Следи за границами и выбирай std::array для фиксированного размера, а std::vector — для изменяемого.