русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Декларация структур

Из базовых типов данных (и типов определенных программистом) можно формировать производные типы, к которым относятся указатели, массивы, функции, структуры и объединения.

Данные базовых типов (int, float, …) считаются скалярными данными. Массивы и структуры являются агрегирующими типами данных в отличие от объединений и скалярных данных, которые относятся к неагрегирующим типам. Т.е. агрегирующий тип включает несколько компонентов, например, массив в общем случае состоит из совокупности элементов. Для агрегирующего типа данных выделяется такое количество памяти, чтобы разместить одновременно значения всех его элементов. Кроме массивов, состоящих из однородных элементов, в языке С определен такой агрегирующий тип данных как структура.

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

Структуры помогают в организации сложных данных (особенно в больших программах) поскольку позволяют группу связанных между собой элементов трактовать не как множество отдельных элементов, а как единое целое.

Например, состав зачетной ведомости группы может быть представлен следующими данными:

- номер в списке (int);

- фамилия имя отчество студента (char[]);

- оценка (int).

Структуры могут копироваться, над ними могут выполняться операции присваивания, их можно передавать функциям в качестве аргументов, а функции могут возвращать их в качестве результатов.

Для определения таких данных в программе и используется структурный тип данных, для описания которого используется ключевое слово struct:

struct InspectSheet {

int Number;

char Names[40];

int Mark;

};

1. В общем случае формат определения структурного типа таков:

struct <имя_структурного_типа>

{<определения_элементов>};

struct – спецификатор структурного типа.

<имя_структурного_типа> - идентификатор, произвольно выбираемый программистом.

<определения_элементов> - совокупность одного или более описаний объектов, каждый из которых служит прототипом для элементов вводимого структурного типа.

Следует обратить внимание на то, что <имя_структурного_типа> в некотором смысле эквивалентно типу (int, double и т.п.), а не имени переменной.

2. Еще одним способом определения структур является использование препроцессорной директивы typedef:

typedef struct {<определения_элементов>}

<обозначение_структурного­_типа>;

В этом случае используется так называемый безымянный структурный тип.

При определении структурного типа при помощи typedef можно указывать еще и имя типа:

typedef struct COMPLEX

{

double real;

double imag;

} complex;

Это позволяет впоследствии использовать как имя структурного типа, так и его обозначение. Правильно будет:

complex first; // Определяем переменную типа complex

struct COMPLEX first; // Определяем переменную типа complex

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

struct List {//Определяем тип данных – обычно в заголовочном файле

int n;

char Name[40];

} Var1, Var2, Var3;

Размер памяти, выделяемый для размещения объектов структурного типа можно получать при помощи операции

sizeof(<имя структуры>)

sizeof(<имя структурного типа>)

Просмотров: 640


Вернуться в оглавление



Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.