Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Языки программирования (пособие).doc
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
965 Кб
Скачать
☆

Тема 4.4. Структуры

4.4.1Причины использования структур

Одна из задач любого языка программирования заключается в предоставлении программисту инструментов, позволяющих представлять данные в удобной для работы форме. Структуры являются одним из таких инструментов, который хорошо подходит в ряде случаев, когда сложно обойтись только переменными и массивами. Некоторые языки программирования, например, Паскаль применительно к структурам используют термин запись (record). Структура – это запись, состоящая из нескольких полей. Структуру также можно считать составной переменной, состоящей из нескольких переменных.

Предположим, что перед нами стоит задача реализовать базу данных, предназначенную для работы с информацией о сотрудниках фирмы. С каждым сотрудником связан набор разнотипных данных, таких как имя (name), возраст (age), зарплата (salary) и др. Чтобы решить эту задачу, можно описать несколько массивов, каждый из которых будет отвечать за свою характеристику сотрудника:

string name[];

float salary[];

int age[];

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

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

4.4.2Объявление структуры

Рассмотрим, как описать структуру для представления сотрудника:

struct Worker {

string name;

double salary;

int age;

};

В данном фрагменте кода struct – это ключевое слово, информирующее о начале описания структуры. Далее указывается имя структуры Worker, а затем в фигурных скобках перечисляются переменные, входящие в структуру, и указывается их тип; применительно к структурам такие переменные называются полями. Описав структуру Worker, мы фактически определили новый составной тип данных, называемый Worker. После его определения можно описать переменную этого типа:

Worker director;

При описании также можно задать значения полей структуры, перечислив эти значения в том порядке, который указан при описании структуры:

Worker director = {"Андрей", 34, 1000.6};

Во избежание путаницы имена структур лучше начинать с заглавной буквы, а имена переменных – со строчной. Такое соглашение позволяет к тому же объявлять переменные и структуры с «почти» одинаковыми именами:

Worker worker;

4.4.3Обращение к полям структуры и оператор «точка»

Обратиться к значению, которое хранит переменная, можно, просто написав ее имя. Структура является не просто переменной, а в некотором смысле составной переменной, поэтому для обращения к данным, которые хранит структура необходимо указать ее имя и имя поля. Для этого существует специальный оператор «точка», который разделяет имена структуры и ее полей. Рассмотрим пример использования этого оператора для того, чтобы присвоить значения элементам структуры:

Worker manager;

manager.name = "Сергей";

manager.salary = 1000.55;

manager.age = 33;