С++ унаследованные массивы из C, где они используются практически везде. С++ предоставляет абстракции, которые легче использовать и менее подвержены ошибкам (std::vector<T>
с С++ 98 и std::array<T, n>
, поскольку C++11), поэтому необходимость в массивах возникает не так часто, как в C. Однако, когда вы читаете устаревший код или взаимодействуете с библиотекой, написанной в C, вы должны твердо понять, как работают массивы.
Этот FAQ разделен на пять частей:
- массивы на уровне типа и элементах доступа
- создание и инициализация массива
- назначение и передача параметров
- многомерные массивы и массивы указателей
- распространенные ошибки при использовании массивов
Если вы чувствуете, что в этом FAQ отсутствует что-то важное, напишите ответ и свяжите его здесь как дополнительную часть.
В следующем тексте "массив" означает "массив C", а не шаблон класса std::array
. Предполагается базовое знание синтаксиса C-объявления. Обратите внимание, что ручное использование new
и delete
, как показано ниже, чрезвычайно опасно перед исключениями, но это тема других часто задаваемых вопросов.
<суб > (Примечание: это означает запись в Часто задаваемые вопросы о переполнении стека С++. Если вы хотите критиковать идею предоставления FAQ в этой форме, тогда публикация на мета, которая начала все это, была бы местом для этого. Ответы на этот вопрос отслеживаются в С++ чате, где идея FAQ начиналась в первую очередь, поэтому ваш ответ, скорее всего, будет прочитан теми, кто придумал эту идею.) Суб >