Рекурсивной называют функцию, которая прямо или косвенно вызывает сама себя.


Функция называется косвенно рекурсивной, если она содержит обращение к другой функции, содержащей прямой или косвенный вызов определяемой (первой) функции.

Если в теле функции явно используется вызов этой же функции, то имеет место прямая рекурсия.


При каждом обращении к рекурсивной функции создается новый набор объектов, локализованных в теле функции.


Пример рекурсивной функции - вычисление факториала:



Ассоциативная связь


Рекурсия – мощный инструмент для разработки программ, с помощью которого даже большие объемы действий могут быть записаны весьма компактным программным кодом. Однако рекурсией следует пользоваться осторожно и внимательно, поскольку при выполнении рекурсивного вызова система сохраняет в стеке значения всех автоматических переменных функции и ее параметров, а это требует затрат и памяти и времени. Эти параметры восстанавливаются после завершения рекурсивного вызова. Управление при этом будет передано оператору, стоящему непосредственно за оператором вызова функции.