Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
programmirovanie / ОПиАЯ_№3_4_слайды.doc
Скачиваний:
33
Добавлен:
03.03.2016
Размер:
147.46 Кб
Скачать

3.3 Массивы в Си

Массив – это структура данных, используемая для хранения набора элементов данных одного и того же типа.

Использование массива позволяет связать одно имя переменной с целой группой однотипных элементов данных.

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

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

Индексированная переменная

x[0] служит для обращения к начальному, или 0-му элементу массива х,

x[1] – к следующему, а

x[n] – к последнему.

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

В Си одномерный массив объявляется оператором вида

mun v[ l];

где mun есть тип данных (int, double),

а l – целочисленное константное выражение. Его значение представляет собой количество элементов(длина) массива.

Массиву v выделяется память из l*mun байтов.

Первый элемент массива имеет нулевой индекс,

а индекс последнего элемента равен l-1.

Например, объявление

double Х[3];

определяет три элемента: Х[0] Х[1] и Х[2].

Константное выражение в объявлении массива можно опустить в следующих трёх случаях:

  1. Когда в объявлении массива элементам явно задаются начальные значения; в этом случае длину массива компилятор определяет по количеству констант. Пример:

double Х[]={1.,1.,1.};

  1. Когда массив объявляется как внешний; при этом ему в другом месте программы выделена память и (возможно) присвоены начальные значения.

  2. Когда массив является формальным параметром (указан в заголовке и прототипе функции).

При этом элементам массивов можно назначить начальные значения.

Пример, объявление

Char U[]=“Эх-хо!”,

V[10]=И-и-и-эх”,

He[5]=“Фрол”,

She[4]={‘А’, ‘д’, ‘а’, ‘\0’};

устанавливает, что массив U состоит из 6 элементов, V – из 9, He – из 4 и She содержит 3 элемента.

Пример,

Рассмотрим массив

x[0] x[1] x[2] x[3] x[4] x[5] x[6] x[7]

12,0

6,0

-54,5

14,0

12,0

2,5

8,0

16,0

В таблице представлен ряд операторов с обращением к элементам этого массива.

Оператор

Пояснение

Printf(“%.1f”,x[0]);

Выводит значение x[0], равное 16,0

x[3] = 25.0;

Сохраняет значение 25,0 в x[3]

sum = x[0]+x[1];

Сохраняет сумму x[0] и x[1], равную 28,0 в переменную sum

sum+= x[2];

Прибавляет x[2] к sum. Новая sum равна 34,0

x[3]+=1.0;

Прибавляет 1,0 к x[3]. Новый x[3] равен 26,0

x[2] = x[0]+x[1];

Сохраняет сумму x[0] и x[1] в x[2]. Новый x[2] равен 28,0

Содержание массива х после выполнения этих операторов:

x[0] x[1] x[2] x[3] x[4] x[5] x[6] x[7]

Объявление массивов.

СИНТАКСИС:

тип_элемента aname[размер];

/*неинициализированный массив*/

тип_элемента aname[размер]={список инициализаторов};

/*инициализированный массив*/

ПРИМЕР:

#define A_SIZE 5

double a[A_SIZE];

char vowels[] = {‘A’, ‘E’, ‘I’, ‘O’, ‘U’};

ОПИСАНИЕ: Объявление неинициализированного массива резервирует память для массива aname, занимающего размер ячеек памяти. В каждой ячейке памяти может храниться один элемент данных типа тип_элемента (double, int или char). К отдельным элементам можно обращаться при помощи индексированных переменных aname[1], …, aname[размер]. Для указания размерности массива используется константа типа int.

В объявлении массива с инициализацией размер, указанный в квадратных скобках, необязателен, так как может быть определён длинной списка инициализации.

Список инициализации состоит из выражений-констант типа, указанного в тип_элемента, и отделенных друг от друга запятыми.

Элемент 0 инициализируемого массива должен быть первым в списке инициализации, элемент1 –вторым, и т.д.

Соседние файлы в папке programmirovanie