Как рекурсия использует структуру данных стека? - PullRequest
0 голосов
/ 25 июня 2019

Недавно я читал, что рекурсия использует системный стек для хранения адресов возврата вызовов функций.Итак, я только что сделал случайный код, чтобы понять эту концепцию LIFO в рекурсии*750

Я предполагал, что функция будет вызываться в этом порядке -

fun(6)->fun(5) { it will print 5 then return 0} ->fun(7) { it print 7 then return 0} -> max(0,0) { return 0}

Исправьте меня, где я ошибаюсь.

1 Ответ

3 голосов
/ 25 июня 2019

В C ++ порядок вычисления аргументов не указан.

При написании max(fun(x-1),fun(x+1)); компилятор может выбрать сначала оценку fun(x+1).

...