Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
114-124.docx
Скачиваний:
4
Добавлен:
11.09.2019
Размер:
121.04 Кб
Скачать
  1. Структуры и другие типы данных. Структуры С и C++: синтаксис и правила. Создание простой структуры.

Структуры и другие типы данных.

Основное внимание здесь уделено двум важным средствам, общим для С и C++: структурам и объединениям. Структура С или C++ аналогична массиву или вектору тесно связанных атрибутов. Однако в отличие от массива или вектора структура позволяет иметь смешанные атрибуты различных типов данных.

Структуры очень важны в С и C++, они являются предшественниками более совершенного типа C++, называемого классом. После детального знакомства со структурами намного проще разбираться с классами C++. Это объясняется тем, что классы C++ содержат и дополняют многие свойства структур.

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

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

struct book {

char title [MAXTIT]; /* символьный массив для названия */

char author [MAXAUT]; /* символьный массив для фамилии автора */

float value; /* переменная для хранения цены книги */

}; /* конец шаблона структуры */

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

  1. Как устанавливать формат или «шаблон» для структуры.

  2. Как объявлять переменную, соответствующую этому шаблону.

  3. Как осуществлять доступ к отдельным компонентам структурной переменной.

Установка структурного шаблона.

Структурный шаблон является основной схемой, описывающей, как собирается структура. Наш шаблон выглядел бы так:

struct book {

char title [MAXTIT];

char author [MAXAUT];

float value;

};

Этот шаблон описывает структуру, составленную из двух символьных массивов и одной переменной типа float. Давайте рассмотрим его детально.

Первым стоит ключевое слово Struct; оно определяет, что все, что стоит за ним, является структурой. Далее следует необязательный «тег» (имя типа структуры) — слово book, являющееся сокращенной меткой, которую мы можем использовать позже для ссылки на эту структуру. Поэтому где-нибудь позже у нас будет описание

struct book libry;

которое объявляет libry структурой типа book.

Далее у нас есть список «элементов» структуры, заключенный в парные фигурные скобки. Каждый элемент определяется своим собственным описанием. Например, элемент title является символьным массивом, состоящим из MAXTIT-элементов. Как мы уже отмечали, элементы могут быть данными любого типа, включая другие структуры!

И, наконец, мы ставим точку с запятой, завершающую определение шаблона.

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

struct book dickens;

и эта функция должна иметь переменную dickens, которая следует за нашим шаблоном.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]