Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Структуры



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

Структура - производный тип данных. Поэтому необходимо описать компоненты, входящие в ее состав. Для этой цели создается шаблон структуры.

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

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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...