Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
С_глава1.doc
Скачиваний:
1
Добавлен:
16.12.2018
Размер:
548.86 Кб
Скачать

Одномерные массивы

Массив представляет собой набор данных одного типа.

float A [5] = {-0.6, 9.7, 3, 6, 0} – массив из пяти элементов типа float.

Чтобы объявить массив, нужно указать его тип, имя и размер. Размер задается числом, взятым в квадратные скобки. Описание массива имеет следующий вид:

тип_данных имя_массива[размер_массива];

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

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

float x[5]; //Объявление массива x из 5 элементов вещественного типа

y[10]; // Объявление массива y из 10 элементов вещественного типа

int a[7]; // Объявление массива a из 7 элементов целого типа

Элементы массива размещаются в памяти последовательно, друг за другом. Для доступа к элементу массива используется имя массива, за которым следует номер элемента (индекс) в квадратных скобках. Индексом может быть только целая положительная константа или выражение целого типа. Индексирование элементов массива начинается с 0, а не с 1. При обращении к элементам массива автоматический контроль выхода индекса за границу массива не производится, что может приводить к ошибкам.

Примеры доступа к элементам одномерного массива.

1) x[0]- первый элемент одномерного массива x,

2) a[5]- шестой элемент массива а,

3) y[2*i-1]-здесь индекс массива является выражением, которое зависит от значения пере-менной i.

Инициализация одномерных массивов

Инициализацию массива можно проводить одновременно с его объявлением. Для этого после объявления массива вместо ; нужно поставить знак = и в фигурных скобках через запятую указать значения элементов массива.

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

1) int a[5] = {1,2,3,4,5}; // a[0]=1, a[1]=2,…, a[4]=5

2) double b[]={2.1,3.0,1.12,4.44}; // Если размер массива не указан, то компилятор автоматически его вычислит по списку значений элементов

3) int с[4]={10,20};// с[0]=10, c[1]=20, значения остальных элементов массива не устанавливаются, они могут содержать любой мусор.

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

const int n;

float x[]={1.1,2.2,3.3,4.4}; // Инициализация массива из 4 элементов

n = sizeof(x)/sizeof(x[0]); // Размер массива x делится на размер элемента массива

Размерность массива предпочтительнее задавать с помощью именованных констант, поскольку при изменении размерности придется вносить коррективы только в одном месте. Необходимо помнить, что попытка присвоить значение несуществующему элементу массива (то есть имеющему индекс больше, чем размерность массива минус 1) может приводить к непредсказуемым последствиям, так как это значение будет занесено в ячейку памяти с другими данными, и те будут безнадежно испорчены.

Для задания элементов массива нужно….

# include <stdio.h>

# include <time.h>

# include <stdlib.h>

void main()

{

float array[3];

srand(time(NULL));

for (int i = 0; i<3; i++)

{

array[i] = float(rand())/RAND_MAX;

printf("%3.2f\n", array[i]);

}

}