double arrow

Структуры


Несколько переменных (возможно различных типов) логически сгруппированных в месте под одним именем называются структурой.

В структуру можно объединить координаты точки x, y, h, например

Struct (float x, y, h;) p;

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

p·x, p·y, p·h

и присвоить им значения, например p·x=167, p·y=103, p·h=205.

Эту структуру можно записать еще и так:

Struct point (float x, y, h;) p;

Или

Struct point (float x, y, h;);

Struct point p

Слово point называют тегом структуры, слово p определяет структурную переменную.

В языке Си средством typedef определяются новые имена типов данных. И если записать

Typedef struct {float x, y, h;} POINT

то POINT определит новое имя типа. Тогда можно записать новый тип

POINT p;

Массив из N точек может быть объявлен так:

Struct {float x, y, h;} P [N]

Если же выше было объявлено имя структуры, например point, то можно записать

Struct point P [N]

Каждый элемент массива P [i] является структурой, состоящей из трех компонентов A [i].x, A [i].y, A[i].h

Структуры могут содержать указатели на другие структуры. В результате можно строить списки, деревья и т.д. Если структура S содержит поле указателя p, то этот указатель обозначается S.p, а указываемый объект *(S.p). Для последнего выражения имеется специальное обозначение

S_p







Сейчас читают про: