Объявление массивов
Массивы занимают область в памяти. Программист указывает тип каждого элемента, количество элементов, требуемое каждым массивом, и компилятор резервирует соответствующий объем памяти.
Пример:
int a [12]; – массив из 12 элементов.
Память может быть зарезервирована для нескольких массивов с помощью одного объявления.
Пример:
int a [12], b[27];
Массивы могут быть объявлены и для хранения других типов данных. Например, для хранения строки символов можно использовать массив типа char.
Инициализация массивов
Начальные значения могут присваиваться при объявлении массива (с помощью списка, заключенного в фигурные скобки):
int a [3] = {3,5,11}; int a [] = {3,8,54} – можно не указывать размер массива, тогда выделяется столько памяти, сколько начальных значений.
Присваивание начального значения - это инициализация. Если начальных значений меньше, чем элементов в массиве int a [3]={3,89}, то остальные элементы автоматически получают нулевое начальное значение.
Можно присвоить нулевые начальные значения с помощью объявления
int n [10] = {0};
которое явно присваивает нулевое начальное значение первому элементу и неявно присваивает нулевые начальные значения оставшимся девяти элементам.
Задание в списке начальных значений больше, чем задано элементов в массиве, является синтаксической ошибкой.
Например,
int a [5] = {37,57,98,76,45,90}; - синтаксическая ошибка.
Рис.4.5.
Массивы символов. Хранение строк в массивах символов.
Массиву символов можно задать начальное значение, используя литеральную константу.
Например, объявление
char string1[ ] = “first”;
присваивает элементам массива string1 в качестве начальных значений отдельные символы строки “first”.
Строка “first” содержит пять символов плюс специальный символ окончания строки – нулевой символ.
Нулевой символ – это нулевая константа ‘\0’.
Все строки заканчиваются этим символом.
Можно было задать
char string1 = {‘f’, ‘i’, ‘r’, ‘s’, ‘t,’ ,’\0’};
Так как строка является массивом символов, то можно получить доступ к отдельным символам строки, используя индексы.
strng1[ 0 ] - это символ ‘f’
strng1[ 3 ] - это символ ‘s’.
Мы можем ввести строку непосредственно в символьный массив с клавиатуры, используя cin и >>.
Например,
char string2 [20];
создает символьный массив из 19 символов и завершающий нулевой символ.
Оператор
cin>>string2;
считывает строку в массив string2.
В данном операторе используется только имя массива и нет никакой информации о его размере.
Программист обязан убедиться в том, что массив, в который записывается строка, способен вместить любую строку, которую пользователь наберет на клавиатуре.
cin считывает символы с клавиатуры до тех пор, пока не встретится первый разделитель в тексте, и при этом не заботится о размерах массива.
Символьный массив, представляющий строку, может быть выведен с помощью cout и <<.
Массив string2 печатается оператором
cout << string2 << endl;
cout также не заботится о размерах массива. Символы строки печатаются до тех пор, пока не встретится завершающий нулевой символ \0.
