Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЕКЦИЯ№3_С++(массивы&указатели).doc
Скачиваний:
64
Добавлен:
25.11.2019
Размер:
740 Кб
Скачать
☆
    1. Объявление массива

      1. Одномерные (линейные) массивы

Объявление массива имеет следующий синтаксис:

  1. <спецификация типа> <имя> [<константное выражение>];

  2. <спецификация типа> <имя> [ ];

Квадратные скобки являются элементом синтаксиса, а не признаком необязательности конструкции.

Объявление массива может иметь одну из двух синтаксических форм, указанных выше. Квадратные скобки, следующие за именем, – признак того, что переменная является массивом. Константное выражение, заключенное в квадратные скобки определяет число элементов в массиве.

В C++ нельзя определять произвольные диапазоны для индексов. Индексация элементов массива в языке C++ начинается с нуля, последний элемент массива имеет индекс на единицу меньше, чем число элементов массива.

Во второй синтаксической форме константное выражение в квадратных скобках опущено. Эта форма может быть использована в следующих случаях:

  1. если в объявлении массива присутствует инициализатор;

  2. массив объявляется как формальный параметр функции;

  3. данное объявление является ссылкой на объявление массива где-то в другом месте программы.

      1. Многомерные массивы

Многомерный (N-мерный) массив, или массив массивов, объявляется путем задания последовательности константных выражений в квадратных скобках, следующей за именем:

<тип> <имя> [<константное выражение_1>] [<константное выражение_2>] ... [<константное выражение_N>];

Каждое константное выражение определяет количество элементов в соответствующем измерении массива.

Для многомерного массива может быть опущена только первая размерность.

Примеры объявлений массивов

int x[10];

// Одномерный массив из 10 целых чисел.

// Индексы меняются от 0 до 9.

double y[2][10];

/* Двумерный массив вещественных чисел из 2 строк и 10 столбцов.*/

    1. Инициализация массивов

Как и простые переменные, массивы могут быть инициализированы при объявлении.

Инициализатор для объектов составных типов (каким является массив) состоит из списка инициализаторов, разделенных запятыми и заключенных в фигурные скобки. Каждый инициализатор в списке представляет собой константу соответствующего типа или список инициализаторов (при инициализации многомерных массивов).

Наличие списка инициализаторов в объявлении массива позволяет не указывать число элементов по его первой размерности. В этом случае количество элементов в списке инициализаторов и определяет число элементов по первой размерности массива. Тем самым определяется размер памяти, необходимой для хранения массива. Число элементов по остальным размерностям массива, кроме первой, указывать обязательно.

Если в списке инициализаторов меньше элементов, чем в массиве, то оставшиеся элементы неявно инициализируются нулевыми значениями.

Если же число инициализаторов больше, чем требуется, то выдается сообщение об ошибке.

Примеры инициализации массивов

int a[3] = {0, 1, 2};

// Число инициализаторов равно числу элементов

double b[5] = {0.1, 0.2, 0.3};

// Число инициализаторов меньше числа элементов

int c[ ] = {1, 2, 4, 8, 16};

// Число элементов массива определяется по числу инициализаторов

int d[2][3] = {{0, 1, 2},{3, 4, 5}};

// Инициализация двумерного массива. Массив состоит из двух строк, // в каждой из которых по 3 элемента. Элементы первой строки // получают значения 0, 1 и 2, а второй – значения 3, 4 и 5.

int e[3] = {0, 1, 2, 3};

// Ошибка – число инициализаторов больше числа элементов