Структуры, перечисления: их синтаксис и назначение (лекция 13)

Содержание

Слайд 2

Структуры

Структура – это множество поименованных элементов в общем случае разных типов.
Объявление типа

Структуры Структура – это множество поименованных элементов в общем случае разных типов.
struct имеет вид:
struct имя_типа {описание элементов};
Элементы структуры называются полями, могут иметь любой тип, в том числе быть указателями на тип самой структуры.

Слайд 3

Поля структуры

Имена полей в структуре должны различаться.
Имена элементов разных структур могут

Поля структуры Имена полей в структуре должны различаться. Имена элементов разных структур
совпадать.
Элементом структуры может быть другая структура.
struct pets { char name[10];
int age };
struct boy { char name[10];
int age;
pets pet };

Слайд 4

В языке С++

Тип struct является видом класса и обладает всеми свойствами классов.

В языке С++ Тип struct является видом класса и обладает всеми свойствами
Все поля класса struct по умолчанию открыты (public), но их можно переопределить как закрытые (private).

Слайд 5

Объявление переменных

Следующий оператор:
struct book library;
создает объект типа struct book, под который

Объявление переменных Следующий оператор: struct book library; создает объект типа struct book,
выделяется 110 байт памяти в соответствии со структурным шаблоном.
Используя тип struct book, можно описать несколько объектов:
struct book library, catalog[10], *plibrary;

Слайд 6

Объявление переменных

Можно объединить описание структурного шаблона и фактическое определение структурной переменной:
struct book

Объявление переменных Можно объединить описание структурного шаблона и фактическое определение структурной переменной:

{ char title[81];
int year;
int page;
float price;
} library;

Слайд 7

Инициализация и доступ

Структурную переменную можно инициализировать в операторе описания подобно массиву:
struct book

Инициализация и доступ Структурную переменную можно инициализировать в операторе описания подобно массиву:
library = { “Язык С++”, “Страуструп”, 1990, 500, 1000 };
Доступ к элементам структуры осуществляется с помощью операции точка:
library.author=”Павловская”; // явная инициализация
gets (library.author); //ввод значения

Слайд 8

Массивы структур

Описание массива структур аналогично описанию любого другого массива:
struct book catalog[10];
Каждый

Массивы структур Описание массива структур аналогично описанию любого другого массива: struct book
элемент массива catalog представляет собой структуру типа book.
Для доступа к элементу массива используется индекс, который присоединяется к имени массива:
catalog[2].title
catalog[4].price
catalog[2].title[5] //6 элемент символьного массива
в 3-й структуре

Слайд 9

Списки структур

Элемент структуры может быть объявлен как указатель на тип структуры, в

Списки структур Элемент структуры может быть объявлен как указатель на тип структуры,
которую он входит. Это позволяет создавать связанные списки структур:
struct sample
{ char c;
float f;
struct sample *next; } x;
Присвоим переменной x.next адрес динамически выделенной области памяти для хранения значения структуры того же типа:
x.next = (struct sample*) malloc (sizeof (x));

Слайд 10

Вложенные структуры

Элементом структуры может быть другая структура.
struct myfile { char name[10];
char

Вложенные структуры Элементом структуры может быть другая структура. struct myfile { char
ftype[4];
int ver; };
struct dir { struct myfile f;
int size; } my_f [100];
Шаблон для вложенной структуры должен располагаться перед определением фактической структурной переменной в рамках другой структуры.
my_f [0].size //элемент size 1-ой структуры
my_f [2].f.ver //элемент ver вложенной структуры f в 3-й структуре my_f

Слайд 11

Указатели на структуры

Объявим указатель на структуру:
struct dir *pst;
Указатель *pst можно использовать для

Указатели на структуры Объявим указатель на структуру: struct dir *pst; Указатель *pst
ссылок на любые структуры типа dir:
pst = &my_f [0];

Слайд 12

Указатели на структуры

Доступ к полям структуры через указатель осуществляется с помощью операции

Указатели на структуры Доступ к полям структуры через указатель осуществляется с помощью
косвенного доступа
pst->size ≡ my_f [0].size
(pst+i)->size ≡ my_f [i].size
Для вложенных структур:
my_f [0].f.ver ≡ pst (f.ver)
my_f [0].f.name[0] ≡ pst (f.name[0])

Слайд 13

Структуры и функции

Для передачи информации о структуре внутрь функции используются следующие способы:
Использование

Структуры и функции Для передачи информации о структуре внутрь функции используются следующие
в качестве фактического аргумента элемента структуры.
Использование в качестве фактического аргумента адреса структуры.
Использование в качестве фактического аргумента самой структуры.

Слайд 14

Перечисления в C++

Перечисление - это тип данных, который описывает набор именованных целочисленных

Перечисления в C++ Перечисление - это тип данных, который описывает набор именованных
констант.
Переменным перечислимого типа можно присваивать только именованные значения перечислимых констант.
Целочисленным переменным можно присваивать значения перечислимых констант.
Применение перечислений делает программы нагляднее.

Слайд 15

Объявление перечислимого типа:

enum color {red, green, black}; // вариант 1
const int

Объявление перечислимого типа: enum color {red, green, black}; // вариант 1 const
red = 0;
const int green = 1;
const int black = 2;
enum color
{ red = 2, green = 2, black = 6 }; // вариант 2

Слайд 16

Объявление переменной перечислимого типа:

enum color с;
color d;
enum color

Объявление переменной перечислимого типа: enum color с; color d; enum color {red,
{red, green, black} a;
enum color c = red;
int i = red;
Имя файла: Структуры,-перечисления:-их-синтаксис-и-назначение-(лекция-13).pptx
Количество просмотров: 37
Количество скачиваний: 0