Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

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

Форматный ввод / вывод на консоль | Спецификаторы преобразования | Оператор return | Оператор break | Оператор continue | Индексация указателей | Потоки и файлы | Двоичные потоки |


Читайте также:
  1. Двумерные массивы
  2. Двумерные массивы
  3. МАССИВЫ
  4. МАССИВЫ
  5. Многомерные массивы
  6. Одномерные массивы

В языке С можно пользоваться массивами, размерность которых больше двух. Общая форма объявления многомерного массива следующая:

тип имя_массива [ Размер1 ][ Размер2 ]...[ РазмерN ];

Массивы, у которых число измерений больше трех, используются довольно редко, потому что они занимают большой объем памяти. Например, четырехмерный массив символов размерностью 10x6x9x4 занимает 2160 байтов. Если бы массив содержал 2-байтовые целые, потребовалось бы 4320 байтов. Если бы элементы массива имели тип double, причем каждый элемент (вещественное число двойной точности) занимал бы 8 байтов, то для хранения массива потребовалось бы 17280 байтов. Объем требуемой памяти с ростом числа измерений растет экспоненциально. Например, если к предыдущему массиву добавить пятое измерение, причем его толщину по этому измерению сделать равной всего 10, то его объем возрастет до 172800 байтов.

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

Передавая многомерный массив в функцию, в объявлении параметров функции необходимо указать все размеры измерений, кроме самого левого. Например, если массив m объявлен как

int m[4] [3] [6] [5];

то функция, принимающая этот массив, должна быть объявлена примерно так:

void func1(int d[][3][6][5]){ /*... */}

Конечно, можно включить в объявление и размер 1-го измерения, но это излишне.


Дата добавления: 2015-08-17; просмотров: 47 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Одномерные массивы| Функции

mybiblioteka.su - 2015-2024 год. (0.009 сек.)