Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по С Живицкая (Мет пособие).doc
Скачиваний:
112
Добавлен:
15.06.2014
Размер:
2.11 Mб
Скачать

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

Многомерный массив объявляетсяследующим образом

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

Массивы имеющие более 3-х измерений используются очень редко, т.к. необходим большой объем памяти для их хранения. Требуется некоторое время в многомерных массивах на вычисления каждого индекса. Следовательно, доступ в многомерных массивах к элементам происходит медленно, чем доступ в одномерных массивах.

2.3.2. Структуры.

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

Формат:

struct ярлык {

тип элемента 1 имя элемента 1;

- - - - - - - - - - - - - - - -

тип элемента n имя элемента n;

} структурные переменные;

Именем элемента может быть любой индентификатор. В одной строке через запятую можно записать несколько индентификаторов одного типа. Ярлык - это имя типа структуры, а не имя переменной. Структурные переменные - это разделенные запятыми список имен переменных, или ярлык, или структурные переменные могут отсутствовать, но не оба.

Пример:( информация об имени и адресе находящаяся в списке рассылки)

struct addr {

char name [30];

char street [40];

char city [20];

char state [3];

unsigned long int Zip;

};

Объявление завершается точкой с запятой, т.к. объявление структуры - это оператор. Имя структуры addr индентифицирует структуру данных и является спицификатором типа. Имя структуры часто используют, как ярлык. В данном примере определена только форма данных. Для объявления переменной соответствующей данной структуре следует написать

struct addr addr_ info;

В данной строке происходит объявление переменной addr_ info типа addr. При объявлении структуры определяется переменная смешенного типа до тех пор, пока не будет объявлена переменная данного типа, она не будет существовать. Когда объявлена структурная переменная, компелятор автоматически выделяет необходимый участок памяти для размещения всех ее членов.

Пример размещения addr info в памяти:

Name 30 байт

Street 40 байт

City 20 байт - addr. info

State3 байт

Zip4 байт

При объявлении структуры можно одновременно объявить одну или несколько переменных.

Пример:

struct addr {

char name [30];

char street [40];

char city [30];

char state [3];

unsigned long int Zip;

} addr _ info, binfo, cinfo;;

В данном случае объявляется структура addr и переменные info, binfo, cinfo данного типа, каждая вновь создаваемая структурная переменная содержит свои собственные копии переменных, образующих структуру. Если необходимо только одна структурная переменная, то нет необходимости в ярлыке структуры.

Пример:

struct {

char name [30];

char street [40];

char city [20];

char state [3];

unsigned long int Zip;

} addr_info;

В данном случае объявляется одна переменная addr_info c типом определенным предшествующей ей структуры.

ПРИМЕЧАНИЕ.

Т.е.при использовании структурных переменных, при описании структуры выделяется соответствующая память, без использования структурных переменных память не выделяется, а просто задается форма записи.