Приведем пример, когда функция имеет возможность вызывать сама себя. У данной функции при этом, конечно же, есть имя и какое-то определение. Другими словами, она имеет собственный код.
Но нужно учитывать, что
цикл - это не рекурсия, цикл - это просто повторение.Для вызова функции обычно нужен стек. Именно там содержится адрес, к которому в конечном итоге необходимо вернуться. Другими словами, в любой раз, когда вы вызываете какую-либо функцию, текущий адрес сохраняется в стек, а когда мы возвращаем ее обратно, он забирается из стека.
Каждая функция, которая была вызвана рекурсивно, имеет параметры n. И следующие параметры, которые были переданы в функцию, тоже сохраняются в стек. Таким образом, когда вы возвращаете из функции в функцию восстанавливается не только адрес, а также параметры, которые действительны на сегодня.
Спасибо за ваш вопрос!
Эксперт Pro DGTL, Алексей