С++ для начинающих




Тип “массив” - часть 2


int main()

{

           const int array_size = 10;

           int ia[ array_size ];

           for ( int ix = 0; ix < array_size; ++ ix )

                  ia[ ix ] = ix;

}

При определении массив можно явно инициализировать, перечислив значения его элементов в фигурных скобках, через запятую:

const int array_size = 3;

int ia[ array_size ] = { 0, 1, 2 };

Если мы явно указываем список значений, то можем не указывать размер массива: компилятор сам подсчитает количество элементов:

// массив размера 3

int ia[] = { 0, 1, 2 };

Когда явно указаны и размер, и список значений, возможны три варианта. При совпадении размера и количества значений все очевидно. Если список значений короче, чем заданный размер, оставшиеся элементы массива инициализируются нулями. Если же в списке больше значений, компилятор выводит сообщение об ошибке:

// ia ==> { 0, 1, 2, 0, 0 }

const int array_size = 5;

int ia[ array_size ] = { 0, 1, 2 };

Символьный массив может быть инициализирован не только списком символьных значений в фигурных скобках, но и строковым литералом. Однако между этими способами есть некоторая разница. Допустим,

const char cal[] = {'C', '+', '+' };

const char cal2[] = "C++";

Размерность массива ca1 равна 3, массива ca2 – 4 (в строковых литералах учитывается завершающий нулевой символ). Следующее определение вызовет ошибку компиляции:

// ошибка: строка "Daniel" состоит из 7 элементов

const char ch3[ 6 ] = "Daniel";

Массиву не может быть присвоено значение другого массива, недопустима и инициализация одного массива другим. Кроме того, не разрешается использовать массив ссылок. Вот примеры правильного и неправильного употребления массивов:

const int array_size = 3;

int ix, jx, kx;

// правильно: массив указателей типа int*

int *iar [] = { &ix, &jx, &kx };

// error: массивы ссылок недопустимы

int &iar[] = { ix, jx, kx };

int main()

{

           int ia3{ array_size ]; // правильно




Содержание  Назад  Вперед