logo
Подбельский Фомин_Программирование на языке СИ_

Указатели на структуры как компоненты структур.

Указатели на структуры как компоненты структур. В соответствии с синтаксисом языка компонентами структур могут быть данные любых типов, за исключением структур того же типа, что и определяемый структурный тип. Например, элементом структуры, как уже говорилось, может быть структура, тип которой уже определен. Обычна конструкция:

Здесь ранее определенная структура типа struct mix является элементом структуры типа struct hole.

В то же время элементом структуры может быть указатель на структуру того же типа, что и определяемый структурный тип:

В структурном типе "химический элемент" есть компонент next - указатель на структуру того же типа. С его помощью можно формировать списки (цепочки) интересующих нас элементов. Например, можно связать все элементы одной группы периодической таблицы химических элементов либо представить в виде единого списка всю таблицу Д. И. Менделеева.

При определении структурных типов может потребоваться организация взаимных перекрестных связей между структурами двух или более разных типов. В этом случае невозможно выполнить требование об определенности всех связываемых структурных типов. Выходом из тупиковой ситуации служит применение указателей на структуры. Например:

В данном примере для организации перекрестных ссылок в структурах типа struct part использованы в качестве элементов указатели на объекты типа struct ceil. В структуры типа struct cell входят указатели на структуры типа struct part.