По сути, происходит то, что функция повторяется до того, как напечатает. Таким образом, вместо печати 4444
, затем повторной печати, печати 333
и т. Д., Сначала выполняется возврат к самому нижнему уровню перед печатью результатов. Это означает, что первый вызов к функции, которая фактически завершается, является самым нижним (тот, который печатает 22
), затем, после этого, вызов, производящий вывод 333
, завершает, пока, наконец, начальный вызов функции завершает печать 4444
.