Массивы в языке Си.

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

Элемент массива – значение, хранящееся в определенной ячейке памяти, расположенной в пределах массива, а также адрес этой ячейки памяти.

Каждый элемент массива характеризуется тремя величинами:

  • адресом элемента – адресом начальной ячейки памяти, в которой расположен этот элемент;
  • индексом элемента (порядковым номером элемента в массиве);
  • значением элемента.

Cинтаксис объявления массива:

int instanceArray[10];

Это целочисленный массив размером 10 ячеек. Чтобы обратиться к конкретному элементу массива, нужно просто указать имя массива и в квадратных скобках — порядковый номер. Единственно, следует знать, что первый элемент массива имеет индекс — 0, тогда индекс последнего элемента равен размеру массива минус один. Например, индексы для массива из 10 элементов будут соответствовать этому диапазону: от 0 до 9.

Пример программы на языке Си

#include <stdio.h>
int main()
{
  int a[] = { 5, 4, 3, 2, 1 }; // массив a содержит 5 элементов
  printf("%d %d %d %d %d\n", a[0], a[1], a[2], a[3], a[4]);
  getchar();
  return 0;
}
// Результат выполнения программы: 5 4 3 2 1

Многомерные массивы

Многомерные массивы — это массивы, у которых есть более одного индекса. Вместо одной строки элементов, многомерные массивы можно рассматривать как совокупность элементов, которые распределены по двум или более измерениям. Например, объявим двумерный массив размером 8*8, это размер поля для стандартных шашек — 8 строк и 8 столбцов:

int checkers[8][8];

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

Передача массива в функцию

Обработку массивов удобно организовывать с помощью специальных функций. Для обработки массива в качестве аргументов функции необходимо передать:

  • адрес массива,
  • размер массива.

При передаче переменные в качестве аргументов функции данные передаются как копии. Это означает, что если внутри функции произойдет изменение значения параметра, то это никак не повлияет на его значение внутри вызывающей функции.

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

 
Поделиться в facebook
Facebook
Поделиться в twitter
Twitter
Поделиться в vk
VK
Поделиться в google
Google+
Поделиться в email
Email

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Группа в VK

Помощь проекту

Обнаружили опечатку?

Сообщите нам об этом, выделите текст с ошибкой и нажмите Ctrl+Enter, будем очень признательны!

Свежие статьи

Похожие статьи

Структуры в языке Си.

Структуры в языке Си.

Структура в языке Си – это тип данных, создаваемый программистом, предназначенный для объединения данных различных типов в единое целое. Структуры делают программу более модульной, что

 
Функции в языке Си.

Функции в языке Си.

Функция — это самостоятельная единица программы, которая спроектирована для реализации конкретной подзадачи. Функция является подпрограммой, которая может содержаться в основной программе, а может быть создана

 
Указатели в языке Си.

Указатели в языке Си.

Указатель — переменная, содержащая адрес объекта. Указатель не несет информации о содержимом объекта, а содержит сведения о том, где размещен объект. Указатели похожи на метки,

 
Классы памяти в языке Си

Классы памяти в языке Си

Все переменные в программе характеризуются не только типом, но и классом памяти. В языке Си существует четыре класса памяти: Автоматический (automatic); Регистровый (register); Статический (static);

 

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: