Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_ekzamen_CPP.doc
Скачиваний:
3
Добавлен:
21.09.2019
Размер:
311.81 Кб
Скачать
  1. Перечисление.

Перечислением называется тип данных, который включает набор целочисленных констант. Элементы перечисления называются перечисляемыми константами:

enum [имя_перечисления] {список значений};

Список значений перечисляет именованные целочисленные константы, принадлежащие перечислению.

Например:

enum color {r, g, b};

При такой записи r = 0, g = 1, b = 2. Пользователь может задать перечисление с инициализированными константами:

enum color {r = 2, g = 4, b = 6};

Используемые константы могут быть присвоены переменной такого же типа. Например, можно объявить переменную color d; затем этой переменной присваивают значение констант: d = r. Не запрещается присваивание этой переменной и непосредственного значения: d = 2.

Могут быть присвоены только те значения, которые имеют константы в списке. Попытка присваивания других значений приведёт к ошибке.

Например:

enum light {on, off};

enum bool {true, false};

  1. Структура.

Структурой называется упорядоченная совокупность данных, называемых полями структуры.

Поля структуры могут иметь любой тип, исключая тип void и функцию. Следует иметь в виду, что структура может содержать только такие поля, длина которых известна компилятору в момент определения структуры.

Структурным типом данных или структурой называется тип, описывающий структуру. Объявляется структурный тип следующим образом:

struct [имя_структуры]

{

/*объявление членов структуры*/

};

struct – ключевое слово; имя_структуры служит для именования структурного типа и называется тэгом структуры (teg).

Допускается объявление структур, не имеющих имени. Такие структуры называются анонимными и все переменные такого типа объявляются сразу же при объявлении структуры.

struct [emp]

{

int empno; //табельный номер

char name [20]; //фамилия

double salary; //зарплата

};

Это пользовательский тип данных!!!

Для задания переменных этого типа необходимо записать:

emp b, c;

При объявлении анонимной структуры:

struct {double x, y}

vect;

При объявлении переменной структурного типа можно проинициализировать её поля сразу:

emp a = {10, “Los”, 5000};

Для доступа к полям переменной используется конструкция:

Переменная. Имя_поля

Учитывая эту запись, можно записать:

c.empno = 30;

strcpy (c.name, “Boyko”);

c.salary = 2000;

Элементами структуры могут быть массивы и другие структуры.

Структуры первого типа можно присваивать друг другу:

emp d = c;

При такой записи происходит поэлементное копирование полей структуры.

Замечание: в структуре нельзя объявлять элемент, тип которого совпадает с типом объявляемой структуры. Но разрешается объявление элемента структуры, тип которого является указателем на тип объявляемой структуры.

struct stack

{int item;

stack*next;

};

  1. Объединения.

Объединением называется область данных, используемая для хранения данных различных типов одновременно. Одновременно в объединении могут храниться данные только одного определённого типа. Объявляется следующим образом:

union имя_объединения

{

/*объявление объединения*/

};

union – ключевое слово; имя_объединения – наименование и ТЭГ объединения.

Не допускаются анонимные объединения.

Пример:

union num

{int n;

double f;

};

При объявлении переменной данного типа её значение можно инициализировать значением, которое имеет тип первого элемента объединения: num e = {10};

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]