Читайте также:
|
|
ГЛАВА 11. СТРУКТУРЫ
Определение структуры
Операции над переменными структурного типа
Вложенные структуры
Массивы в структурахМассив структур
Структуры и указатели
· Указатели в структуре
· Указатели на структуру
Динамический массив структур
Ссылка на структуру
Структуры и функции
В С++ существуют специальные средства, позволяющие программистам создавать свои собственные типы данных, такие как структуры, классы и др.
Определение структуры
Структура – тип данных, объединяющий под одним именем несколько данных одного или разных типов, которые называются полями (элементами или членами) структуры. В качестве полей могут быть переменные простых типов, массивы, другие структуры, указатели и т.д. Структуры позволяют сгруппировать данные, объединяемые каким-либо общим понятием. Например, данные – имя, фамилия, год рождения, оценки по экзаменам можно поместить в структуру данных о студенте.
Для определения структуры используется ключевое слово struct, за которым следует идентификатор, являющийся именем типа структуры, и список полей или членов структуры, заключённых в фигурные скобки. Каждое поле структуры, как и структура в целом, заканчивается точкой с запятой. Например:
struct Date { // Date – название нового типа пользователя
char name[10]; // поле name
int year; // поле year
int month; // поле month
};
После того как определён структурный тип, пользоваться этим типом нельзя до того момента, пока не объявлена переменная структурного типа. Это можно сделать двумя способами:
Date st1; // переменная st1 типа Date
или
struct Date {
char name[10];
int year;
int month;
} st1;
При объявлении нескольких структурных переменных для одного структурного типа их следует разделять запятыми:
Date st1, st2;
В момент создания структурной переменной компилятор резервирует под неё место в памяти компьютера, В частности, для переменных st1, st2 резервируется память по 18 байтов для каждой.
Доступ к полям структуры осуществляется с помощью операции точка (.). При этом сначала записывается имя структурной переменной, а затем через операцию точку (.) имя поля структуры, например:
st1.name, st1.year.
Присваивать значения полям структуры можно одним из трёх способов:
st1.year = 1999; // использовать оператор присваивания
cin>>st1.name; // ввести значения полей с клавиатуры
Date st1 = {"Иванов", 1999, 11}; // инициализация при объявлении
Операции над переменными структурного типа
Чаще всего над переменными структурного типа выполняют операцию присваивания. Присваивание структур возможно, только если они имеют один и тот же тип:
Date st1, st2, st3;
st2 = st1; // все поля структуры st1 побитово копируются в st2
Недопустимо присваивание структур разных типов, даже в том случае, когда они идентичны по количеству, типу и размеру их полей.
Несмотря на возможность присваивания однотипных структурных переменных, сравнивать их нельзя:
Date st1, st2;
if(st1 == st2) оператор; // Нельзя: ошибка компиляции!
Единственный доступный способ достоверно сравнить структурные переменные – это их поэлементное сравнение:
if(st1.day == st2.day) && (st1.month == st2. month) оператор;
Дата добавления: 2015-08-03; просмотров: 71 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
ИДЕНТИФИКАЦИЯ, УСВОЕНИЕ СОЦИАЛЬНЫХ РОЛЕЙ. САМОСОЗНАНИЕ И ЕГО ФУНКЦИИ | | | Структуры и функции |