Информатика и технология программирования


Определение функции - часть 2


Между ключевым словом return и ограничивающим символом ";" может стоять любое выражение, значение которого и становится результатом функции. Если вспомнить еще и о преобразованиях типов, то при таком "присваивании" результата таковое должно производиться от типа, соответствующего выражению к типу результата функции:


double FF()
{ int nn; // Эквивалент


return (nn+1) ; // FF = (double)(nn + 1)

Имеется специальный пустой тип результата - void , который обозначает, что функция не возвращает никакого результата и, соответственно, не может быть вызвана внутри выражения. Оператор return в такой функции также не содержит никакого выражения:


void Nothing() { return; }

Вызов функции выглядит как имя функции, за которым в скобках следует список фактических параметров.

ФАКТИЧЕСКИЕ ПАРАМЕТРЫ - - переменные, константы или выражения, значения которых при вызове присваиваются соответствующим по списку формальным параметрам.

Тело функции представляет собой уже известную нам синтаксическую конструкцию -блок. Это простая последовательность операторов, заключенная в фигурные скобки. После открывающейся скобки в блоке могут стоять определения переменных. Это ЛОКАЛЬНЫЕ ПЕРЕМЕННЫЕ блока (в данном случае тела функции). Они обладают следующими свойствами:



-локальные переменные создаются в момент входа в блок (тело функции) и уничтожаются при выходе из нее;



-локальные переменные могут использоваться только в том блоке, в котором они определены. Это значит, что за пределами блока они "не видны";



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

Локальные переменные в теле функции обозначаются в Си термином АВТОМАТИЧЕСКИЕ ПЕРЕМЕННЫЕ.




Начало  Назад  Вперед