Массив - это хранилище однотипных объектов. Состоит из отдельных ячеек, к каждой из которых можно обратиться по номеру. Обладает фиксированной длиной (количеством ячеек). Давайте напишем небольшую программу-опросник. Зададим набор вопросов и соберем ответы. Вопросы и ответы будем хранить в массивах. Что здесь происходит: questions.length - размер массива с вопросами.
new String[10] - создать массив (выделить память под массив) из 10 элементов.
new String[questions.length] - создать массив такой же длины, как и массив questions System...
Массив представляет собой множество значений, которыми можно оперировать как группой, так и с отдельно каждым значением. Каждый элемент в массиве является как бы отдельной переменной, с которой можно обращаться, как с обычной переменной. Элемент массива (значение элемента массива) – значение, хранящееся в определенной ячейке памяти, расположенной в пределах массива, а также адрес этой ячейки памяти. Каждый элемент массива характеризуется тремя величинами: адресом элемента — адресом начальной ячейки памяти, в которой расположен этот элемент; индексом элемента (порядковым номером элемента в массиве); значением элемента. У каждого элемента в массиве есть свое положение — индекс элемента, т.е. его порядковый номер. Индекс элемента массива не имеет никакого отношения к присвоенному ему значению. Для определения массива следует указать тип значений, которые он содержит, и максимальное количество элементов, которое может быть в него записано. Адрес массива – адрес начального элемента массива. Имя массива – идентификатор, используемый для обращения к элементам массива. Размер массива – количество элементов массива Размер элемента – количество байт, занимаемых одним элементом массива. Графически расположение массива в памяти компьютера можно представить в виде непрерывной ленты адресов. Представленный на рисунке массив содержит q элементов с индексами от 0 до q-1. Каждый элемент занимает в памяти компьютера k байт, причем расположение элементов в памяти последовательное. Адреса i-го элемента массива имеет значение n+k·i Адрес массива представляет собой адрес начального (нулевого) элемента массива. Для обращения к элементам массива используется порядковый номер (индекс) элемента, начальное значение которого равно 0. Так, если массив содержит q элементов, то индексы элементов массива меняются в пределах от 0 до q-1. Длина массива – количество байт, отводимое в памяти для хранения всех элементов массива. ДлинаМассива = РазмерЭлемента * КоличествоЭлементов Для определения размера элемента массива может использоваться функция int sizeof(тип); Например, sizeof(char) = 1; sizeof(int) = 4; sizeof(float) = 4; sizeof(double) = 8; Многомерные массивы В языке Си могут быть также объявлены многомерные массивы. Отличие многомерного массива от одномерного состоит в том, что в одномерном массиве положение элемента определяется одним индексом, а в многомерном — несколькими. Примером многомерного массива является матрица. Общая форма объявления многомерного массива тип имя[размерность1][размерность2]...[размерностьm]; Элементы многомерного массива располагаются в последовательных ячейках оперативной памяти по возрастанию адресов. В памяти компьютера элементы многомерного массива располагаются подряд, например массив, имеющий 2 строки и 3 столбца, int a[2][3]; будет расположен в памяти следующим образом Общее количество элементов в приведенном двумерном массиве определится как: КоличествоСтрок * КоличествоСтолбцов = 2 * 3 = 6. Количество байт памяти, требуемых для размещения массива, определится как: КоличествоЭлементов * РазмерЭлемента = 6 * 4 = 24 байта. целочисленный массив из 8 элементов с именем arr_int вещественный массив из 11 элементов с именем arr_float символьный массив из 6 элементов с именем arr_char У массива, как и у переменной, имеются свои имя и тип данных. Кроме того, у массива ещё есть одна дополнительная характеристика – размер массива. Размер массива – количество элементов, которые могут в нём храниться. В нашей аналогии с коробочками это количество коробок. Работа с отдельными элементами массива Чтобы обратиться к отдельному элементу массива, необходимо написать его имя и порядковый номер в квадратных скобках. Не забывайте, что нумерация начинается с нуля, а не с единицы. Давайте, например, выведем элементы массива из пяти элементов на экран. Листинг 5. #include <stdio.h> int main(void){ int arr[5] = {2, 4, 3, 5, 5}; printf("%d %d %d %d %d\n",arr[0], arr[1], arr[2], arr[3], arr[4]); return(0); } Конечно, если массив будет очень большой, то выводить его поэлементно подобным образом то ещё удовольствие. Да и с маленьк