Читайте также:
|
|
Объединения
Объединение описывает переменную, которая может иметь любой тип из некоторого множества типов.
Определение объединенного типа данных аналогично определению структурного типа данных:
union имя_объединения {
Описания_элементов
};
Пример:
union bigword {
long bg_long;
char *bg_char [4];
};
Данные типа union bigword занимают память, необходимую для размещения наибольшего из своих элементов, и выравниваются в памяти к границе, удовлетворяющей ограничениям по адресации как для типа long, так и для типа char *[4].
Описание переменной объединенного типа:
Пример:
union bigword x;
union bigword *p;
union bigword a[100];
Перечисления
^ Данные перечислимого типа относятся к некоторому ограниченному множеству данных.
Определение перечислимого типа данных:
enum имя_перечислимого_типа {
Список_значений
};
Каждое значение данного перечислимого типа задается идентификатором.
Пример:
enum color {
red, green, yellow
};
Описание переменной перечислимого типа:
enum color chair;
enum color suite [40];
Использование переменной перечислимого типа в выражении.
Пример:
char = red;
suite[5]!= yellow;
Указатели и структуры
Рассмотрим метку структуры student, описание которой было дано выше как
struct student {
char name[25];
int id, age;
char sex;
}
Указатель new_student определен как
struct student *new_student;
Предположим, что память выделена таким образом, чтобы new_student указывал на объект student. Тогда на компоненты этого объекта можно ссылаться следующим образом:
(*new_student).name
(*new_student).id
(*new_student).age
(*new_student).sex
Поскольку указатели часто используются для указания на структуры, в языке Си специально для ссылок на компоненты таких структур введен оператор выбора стрелка вправо ->. Например, ссылки на вышеприведенные компоненты структуры можно записать с использованием оператора стрелки вправо -> как:
new_struct->name
new_struct->id
new_struct->age
new_struct->sex
^ Массив структур
Процесс описания массива структур совершенно аналогичен описанию любого другого типа массива:
struct book libry[MAXBKS];
Этот оператор объявляет libry массивом, состоящим из MAXBKS-элементов. Каждый элемент массива представляет собой структуру типа book. Таким образом, libry[0] является book-структурой, libry[1] - второй book-структурой и т.д.
^ Определение элементов массива структур. При определении элементов массива структур мы применяем те же самые правила, которые используются для отдельных структур: сопровождаем имя структуры операцией получения элемента и имени элемента:
libry[0].value value - первый элемент массива
libry[4].title title - пятый элемент массива
Дата добавления: 2014-12-18; просмотров: 114 | Поможем написать вашу работу | Нарушение авторских прав |