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

Содержание

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

Слайд 8

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

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

Слайд 9

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

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

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

Слайд 10

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

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

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

Слайд 11

Операция sizeof

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

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

Слайд 12

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

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

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