Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Определение шаблона структуры и структурной переменной
Структура (структурный тип, шаблон структуры) – это тип, определяемый пользователем с использованием ключевого слова struct для объединения в единое целое, имеющее имя, множества поименованных элементов (полей данных), в общем случае, разных типов. Определение структуры ( структурного типа, шаблона структуры) задает внутреннюю организацию структурных переменных после их определения и никак не связано с резервированием памяти компилятором, не создает никаких переменных. Структурный тип только задает правила формирования структурной переменной, используемые компилятором при последующем определении структурной переменной для выделения ей места в памяти и организации доступа к ее полям. Структурный тип имеет уникальное имя в пределах области определения. Имя структурного типа используется при определении структурных переменных аналогично встроенным типам.
Синтаксис определения структуры (структурного типа, шаблона структуры): struct pattern_name { type1 field_name1; }; или, в случае полей одного типа: struct pattern_name { type1 field_name1, field_name2; }; где:
Элементом структуры в С++ может быть и функция.
Примеры определений структурного типа: //1 struct PointRecType // структурный тип «точка» { int x, y; };
!!! Для определения точки можно использовать предопределенную в заголовочном файле windows.h структуру POINT, соответствующую структуре PointRecType.
//2 struct ColorPointRecType // структурный тип «цветная точка» { int x, y; unsigned color; }; //3 struct Book // структурный тип «книга»
{ char name [20]; char title[44]; int year; float price; }; //4 struct Auto // структурный тип «автомобиль» { char fio[40]; //ФИО владельца char adres[60]; //адрес владельца int nomer; //номер авто char marka[20]; //марка авто }; //5 struct Student // структурный тип «студент» { unsigned short gruppa; char fio[20]; unsigned short ocenki[KOL_OC]; //массив оценок на экзамене }; //6 struct Rectangle // структурный тип «прямоугольник» { int left; //пара координат верхней левой точки int top; int right; //пара координат нижней правой точки int bottom; }; !!! Для определения прямоугольных областей можно использовать предопределенную в заголовочном файле windows.h структуру RECT, соответствующую приведенной структуре Rectangle: //7 struct Box // структурный тип «ящик» { double length; //длина double width; //ширина double heigth; //высота }; Определение структурной переменной состоит из двух шагов: · определение структурного типа (шаблона структуры, структуры); · собственно определение структурной переменной
Определение структурных переменных s1 и s2 для приведенной выше структуры Student выглядит следующим образом: Student s 1, s2; //ключевое слово struct опускается
Синтаксис С++ разрешает совмещать определение структурного типа и определение структурных переменных. Например: struct Book { char name[20]; определение структурного типа char title[44]; int year; float price; определение структурных переменных } first_book, child_book, dog_book [4], *ptr_book;
Определение структурного типа может быть анонимным. В этом случае сразу следует определять структурные переменные. Например:
struct { // анонимный структурный тип int pole1; double pole2; char *pole3; } a, b, * pb=&b, * pc, & refa=a, & refb(b); // определение структурных переменных
Как мы видим, значением указателя на структуру может быть адрес структуры того же типа, т.е. адрес байта, начиная с которого структура размещается в памяти. Структурный тип задает ее размеры и тем самым определяет, на какую величину (на сколько байтов) изменится значение указателя на структуру, если к нему прибавить (или вычесть) 1.
Структурный тип может быть операндом операции new: ptr_book = new Book; //выделяется память для структуры типа Book и Для структур могут быть определены и ссылки. Выше в примере показаны разные способы инициализации ссылок refa и refb.
|
|||||||||||||
Последнее изменение этой страницы: 2021-12-15; просмотров: 31; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.19.31.73 (0.015 с.) |