Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Язык Си обладает мощным средствам представления данных – структурой. Структуры предназначены для объединения в одном объекте элементов различных типов. Компонентами структуры могут быть данные любого типа, допустимого в языке Си.
Структура - производный тип данных. Поэтому необходимо описать компоненты, входящие в ее состав. Для этой цели создается шаблон структуры.
Допустим, мы хотели бы объединить в структуру следующие данные об абитуриентах: фамилия, факультет, средний балл. Для этого случая создадим шаблон:
struct abiturient { char name[40];
char facultet[30];
float ball;
};
где ключевое слово struct определяет тип данных структура, слово abiturient является именем (тегом) данного шаблона. Имя шаблона - необязательный параметр, но в дальнейшем оно может использоваться для ссылки на данную структуру. В фигурных скобках размещается описания элементов, входящих в структуру.
Шаблон является схемой без содержания. Он не является объектом и не вызывает ни каких действий.
Структурный шаблон может быть размещен как внутри функции, так и за пределами любой функции. В первом случае шаблон можно использовать для создания локальных структурных объектов внутри данной функции. Во втором случае - шаблон доступен всем фрагментам приложения, следующим за ним.
Следующий шаг заключается в определении структурной переменной.
Формат определения: struct имя_структурного_типа список_структур;
Для нашего случая: struct abiturient person;
В результате этого описания компилятор создает переменную person. Согласно шаблону abiturient компилятор выделяет память для символьного массива name[40], символьного массива facultet[30] и для переменной ball типа float. Эта память объединяется именем person.
В программе может присутствовать несколько переменных типа struct abiturient и даже указатель на этот тип структуры. Тогда описание переменных будет выглядеть так:
struct abiturient person, std, *adr;
Под каждый объявленный объект компилятор выделит место в памяти согласно шаблону.
Чтобы создать массив структурных переменных, размерностью, равной числу абитуриентов (например, 100), следует записать:
struct abiturient mas[100];
По этому описанию компилятор зарезервирует память под массив из 100 структурных переменных, каждая из которых будет создана по шаблону abiturient.
Процесс определения структурного шаблона и процесс описания структурной переменной можно объединить в один этап, поместив идентификатор структурной переменной сразу же за фигурной скобкой. В этом случае имя шаблона можно не указывать.
struct { char name[40];
char facultet[30];
float ball;
} person, mas[100],*adr;
Структурную переменную можно инициализировать. Правила инициализации структуры похожи на правила инициализации массивов:
static struct abiturient person ={"Иванов И.И.", "ИЛА", 4.5 };
Этой записью мы присваиваем исходные значения элементам структурной переменной person.
Дата публикования: 2015-02-22; Прочитано: 153 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!