2.30M
Категория: ПрограммированиеПрограммирование

Структура. Определение структуры

1.

2.

СТРУКТУРА
• Это совокупность переменных,
объединенных под одним именем. С
помощью структур удобно размещать
связанные между собой элементы
информации. Объявление структуры
создает шаблон, который можно
использовать для создания ее объектов
(экземпляров этой структуры).
Переменные, из которых состоит
структура, называются элементами
структуры или полями.

3.

ОПРЕДЕЛЕНИЕ СТРУКТУРЫ
• Ключевое слово struct сообщает
компилятору, что объявляется
(декларируется) структура. Далее
указывается имя структуры и в
фигурных скобках поля, которые будет
иметь данная структура. Поля структуры
могут быть любого типа. Это могут быть
целые или дробные числа, числовые
массивы, строки, массивы строк и даже
другие структуры.
Как правило, поля структуры связаны друг с
другом по смыслу. Например, информацию о
человеке, состоящую из имени, адреса и
телефона логично представить в виде
структуры

4.

ОБЪЯВЛЕНИЕ ПЕРМЕННОЙ
• На самом деле никакая переменная не
создается. Всего лишь определяется вид
данных. Когда вы объявляете структуру,
то определяете агрегатный тип, а не
переменную. И пока вы не объявите
переменную этого типа, то существовать
она не будет.
• Чтобы объявить переменную (то
есть физический объект) типа
person, напишем следующее:
В этом операторе объявлена переменная типа person, которая
называется client. Таким образом, person описывает вид структуры (ее
тип), a client является экземпляром (объектом) этой структуры.

5.

ДОСТУП К ПОЛЯМ СТРУКТУРЫ
• Доступ к отдельным полям
структуры осуществляется с
помощью оператора «.»,
который называют
оператором точка или
оператором доступа к полю
структуры.

6.

ПРИСВАИВАНИЕ СТРУКТУР
• Информация, которая находится в
одной структуре, может быть
присвоена другой структуре того же
типа при помощи единственного
оператора присваивания. Нет
необходимости присваивать
значения каждого поля в
отдельности.

7.

TYPEDEF
• позволяет упростить работу с
некоторыми типами данных.
Используя typedef, можно
определять новые имена типов
данных. На самом деле таким
способом новый тип данных не
создается, а всего лишь
определяется новое имя для уже
существующего типа. Такие
выражения могут помочь в
самодокументировании кода,
позволяя давать понятные имена
стандартным типам данных.
Общий вид оператора typedef
Создание нового имени для float

8.

ОПИСАНИЕ СТРУКТУРЫ С ПОМОЩЬЮ TYPEDEF
• Ключевое слово typedef может
быть использовано при
объявлении структуры.
• Теперь мы можем использовать
слово mobile_phone как
обозначение описанной
структуры. При этом объявление
экземпляров структуры будет
выглядеть следующим образом:

9.

• Создать структуру Функция с полями: x[N], y[N], z[N]. Заполнить массивы
координат X (от -3 с шагом 2.5) и Y (от 15 с шагом 1.8). Вычислить значения
поля z[N] по формуле: z = 8x + 1.5y.

10.

МАССИВЫ СТРУКТУР
• Чтобы объявить массив структур,
вначале необходимо определить
структуру, а затем объявить
переменную массива этого же
типа.
Это выражение создаст 100 переменных, каждая из которых
организована так, как определено в структуре mobile_phone.

11.

АДРЕСАЦИЯ
• Чтобы получить доступ к
определенной структуре из
массива структур, нужно указать
имя массива структур с
индексом, помня о том, что в
массивах структур
индексирование также
начинается с 0.

12.

ЗАПОЛНЕНИЕ МАССИВА СТРУКТУР
• Структура «мама» состоит из полей: имя, список имен детей, массив,
отражающий возраст детей. Рассмотрим три способа заполнения массива
структур. Эти способы также подходят и для единичной структуры.
Существует три способа заполнения массива структур.

13.

ПЕРВЫЙ СПОСОБ
Задать, чему равны поля структур при
объявлении (инициализация при
объявлении)

14.

ВТОРОЙ СПОСОБ
Задать, чему равны поля структур с
клавиатуры

15.

ТРЕТИЙ СПОСОБ
Задать, чему равны поля структур из
файла

16.

Задать структуру, описывающую студента и его успеваемость. Создать
массив из 25-ти студентов. Вывести на экран таблицу со всеми полями
получившегося массива структур.

17.

ВЛОЖЕННЫЕ СТРУКТУРЫ
• Рассмотрим ситуацию, когда одним из
полей структуры является другая
структура. В этом случае сначала
необходимо определить вложенную
структуру. А затем использовать ее при
определении основной структуры.
• Рассмотрим пример, когда существует
структура Мама с полями: Имя, Возраст,
Массив детей; где Массив детей – это
массив структур Ребенок с полями Имя,
Пол, Возраст

18.

ВЛОЖЕННЫЕ ДИНАМИЧЕСКИЕ СТРУКТУРЫ
• В случае, если у каждой из мам
разное количество детей, то при
определении структуры невозможно
указать размер массива структур
типа child. В таком случае
необходимо использовать
динамическую память для работы с
массивом типа child .

19.

ПРИМЕР
ЗАПОЛНЕНИЯ
ТАКИХ СТРУКТУР
English     Русский Правила