Рекурсивная функция (иногда говорят просто - рекурсия) - это функция в теле которой содержится вызов самой себя. Особенность, которую всегда следует учитывать при их использовании - повышенная загрузка стека. Стек имеет статический размер, определенный в настройках проекта (для языков высокого уровня), и если во время вызова рекурсивной функции программа вылетает, возможным решением проблемы будет увеличение размера стека. Глубиной рекурсии характеризуют момент очередного вызова рекурсивной функции, и она выражается числом "висящих" на данный момент времени в стеке рекурсий. Минимальный размер стека определяется произведением Максимально возможной глубины рекурсии на размер функции. Под размером функции понимается объем памяти, который занимает в стеке один вызов функции - он равен объему памяти всех переменных, память для которых выделена непосредственно в этой фунции и не из кучи(heap), всех параметров функции плюс системное слово
------------ Дoбавленo:
Sniper36, вообще-то все это есть на просторах нэта, осталось только не полениться и набрать нужное слово в поисковике
