Массивы в Си

Что такое массивы в си?

Как объявлять массивы в си?

Как инициализировать массивы в си?

Массивы в Си для чайников.

Массивы в C

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

Простой пример создания и заполнения массива в C:

Получаем: Массивы в Си

В примере объявляем массив, содержащий элементы типа int:

int nArr[3];

здесь имя массива nArr, количество элементов массива равно трём, тип элементов массива int.

Массив – это набор элементов. К каждому элементу массива можно обратиться по его номеру. Номер принято называть индексом. Нумерация элементов массива идёт с нуля. Присвоим значение первому элементу массива, а первый элемент имеет индекс ноль:

nArr[0] = 1;

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

nArr[1] = 2;

Присвоим значение третьему элементу массива, а третий элемент имеет индекс два:

nArr[2] = 3;

При выводе на экран элементов массива мы получаем их значения. Вот так:

printf("nArr[0]\t=\t%d\n", nArr[0]);

Чтоб получить элемент массива, надо указать имя массива и индекс элемента:

nArr[0]

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

Присвоим значение третьего элемента массива переменной int a:

int a = nArr[2];

индекс третьего элемента массива равен двум, так как отсчёт индексов ведут с нуля.

Теперь общее правило объявления массивов в Си: при объявлении массива нужно указать его имя, тип элементов, количество элементов. Количество элементов есть натуральное число, т.е. целое положительное. Ноль не может быть количеством элементов. Нельзя задавать переменное количество элементов массива. Вот примеры объявлений массивов в C:

int nArr[100]; // Объявлен массив, предназначенный для хранения ста целых чисел;
float fArr[5]; // Объявлен массив, предназначенный для хранения 5-ти чисел типа float;
char cArr[2]; // Объявлен массив, предназначенный для хранения двух символов;

Ошибкой будет объявить массив с переменным количеством элементов:

int varElem;
int nArr[varElem]; // Ошибка! Количество элементов нельзя задавать переменной;

Но можно задавать количество элементов постоянной величиной: или непосредственным целым положительным числом 1, 2, 3... или константой:

const int arrayLength = 3;
int nArr[arrayLength];

Далее инициализация массивов в C.

При объявлении массива в Си его сразу можно инициализировать:

int nMassiv[3] = {1, 2, 3};

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

int nMassiv[] = {1, 2, 3};

количество элементов будет в этом случае определено автоматически.

Можно определить лишь часть элементов массива при его объявлении:

int nMassiv[3] = {1, 2};

в этом примере первые два элемента массива инициализированы, а третий не определен.

Пример массива символов:

char cArr[3] = {'S', 'B', 'P'};

При объявлении массива нельзя указывать количество элементов переменной. Но можно использовать переменные при обращении к элементам массивов:

int ind = 0;
char cr = cArr[ind];

Это используется при работе с циклами. Пример:

В примере в первом цикле заполняем массив элементами типа int, а во втором цикле выводим эти элементы на экран.