Понятие структуры

Содержание

Слайд 2

Понятие структуры

Помимо стандартных типов, программист может создавать свои собственные составные типы

данных - структуры.
Структура — это множество, состоящее из одного или более объектов, возможно имеющих различные типы, объединённых под одним именем. Конструкция struct — один из основных строительных блоков данных в языке. Он предоставляет удобный способ объединения различных элементов, связанных между собой логической связью. Рассмотрим особенности работы со структурами на примере:
Понятие структуры Помимо стандартных типов, программист может создавать свои собственные

Слайд 3

Пример работы со структурами
https://git.io/vbr8Q

Пример работы со структурами https://git.io/vbr8Q

Слайд 4

Особенности структур

Описание структуры начинается со служебного слова struct, за которым может

следовать необязательное имя, называемое именем типа структуры. Это имя типа структуры используется в дальнейшем для создания конкретного объекта
За именем типа структуры идёт заключенный в фигурные скобки список элементов структуры, с описанием типа каждого элемента (элементом структуры может быть переменная, массив или структура). Элементы структуры отделяются друг от друга точкой с запятой
Особенности структур Описание структуры начинается со служебного слова struct, за

Слайд 5

Особенности структур

За правой фигурной скобкой, закрывающей список элементов, может следовать

список объектов. Например, оператор struct date {...} x,y,z; определяет переменные x,y,z в качестве структур описанного типа и приводит к выделению памяти
Описание структуры, за которым не следует список объектов, не приводит к выделению памяти - только определяет форму структуры. Если описание снабжено именем типа, то это имя типа может быть использовано позднее при определении объектов структур
Особенности структур За правой фигурной скобкой, закрывающей список элементов, может

Слайд 6

Особенности структур

Структуру можно инициализировать, поместив вслед за её определением список

инициализаторов для её компонентов, заключенный в фигурные скобки. В программе таким образом инициализирована структура:
date my_birthday = {20,7,1981,"July"};
Обращение к определённому члену структуры производится с помощью конструкции вида:
<имя структуры>.<имя элемента>
Структуры могут вкладываться одна в другую, но самовложение структур запрещено!
Особенности структур Структуру можно инициализировать, поместив вслед за её определением

Слайд 7

Пример вложенности

struct date {
int day; // День
char month[10]; // Месяц
int year;

// Год
};
struct person {
char name[50]; // Имя, фамилия, отчество
char address[10]; // Домашний адрес
int salary; // Зарплата
date birthdate; // Дата рождения.
date hiredate; // Дата поступления на работу
};
Пример вложенности struct date { int day; // День char

Слайд 8

Списковая инициализация

Списковая инициализация

Слайд 9

Использование вложенности

Если определить struct person Nick;
то Nick.birthdate.month будет обозначать месяц рождения.

Операция доступа к элементу структуры «.» вычисляется слева направо.
Использование вложенности Если определить struct person Nick; то Nick.birthdate.month будет

Слайд 10

Действия над структурами

Доступ к элементу структуры с помощью операции «.»
Доступ к

элементу структуры по указателю с помощью операции «->»
Определение адреса структуры с помощью операции «&»
Присваивание структуры как единого целого
Передача структуры в качестве параметра функции и возвращение структуры в результате работы функции
Действия над структурами Доступ к элементу структуры с помощью операции

Слайд 11

Операция sizeof

В языке С существует специальная унарная операция sizeof, которая возвращает

размер своего операнда в байтах. Операндом операции sizeof может быть любое выражение:
sizeof(Выражение);
Результат операции sizeof имеет тип int.
Операция sizeof В языке С существует специальная унарная операция sizeof,

Слайд 12

Размер объектов структур

Может показаться, что размер структуры равен сумме размеров её

компонентов. Это не так. Вследствие выравнивания объектов разной длины в структуре появляются безымянные «дыры». Так, например, если переменная типа char занимает один байт, а int — четыре байта, то для
struct Test {
char c;
int i;
};
может потребоваться 8 байт, а не 5.
Правильное значение возвращает операция sizeof.
Размер объектов структур Может показаться, что размер структуры равен сумме
Имя файла: Понятие-структуры.pptx
Количество просмотров: 41
Количество скачиваний: 0