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

6.3. Структуры и функции

Для "взаимоотношения" структур и функций имеются две основные возможности: структура может быть возвращаемым функцией значением и структура может использоваться в параметрах функции. Кроме того, в обоих случаях могут использоваться указатели на объекты структурных типов. Итак, рассмотрим все перечисленные варианты.

• Функция может возвращать структуру как результат:

• Функция может возвращать указатель на структуру:

• Параметром функции может быть структура:

• Параметром функции может быть указатель на объект структурного типа:

При вызове функции fff( ) выделяется память для формального параметра, т.е. для вспомогательного объекта типа struct person. В этот объект переносится значение фактического параметра, заменяющего формальный параметр - структуру str. Далее выполняются действия, предусмотренные операторами тела функции fff( ). Эти действия не могут изменять структуру, использованную в качестве фактического параметра.

В случае, когда параметром служит указатель на объект структурного типа, действиями внутри тела функции ffff() можно изменить ту структуру вызывающей функции, которая адресуется фактическим параметром pst.