Несколько переменных (возможно различных типов) логически сгруппированных в месте под одним именем называются структурой.
В структуру можно объединить координаты точки 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