Вопрос про рекурсию
int n(int s, int d[])
{
if (s == 0)
return d[0];
int y = d[s];
return y+n(--s,d);//это рабочий вариант в 2 строчки
// return d[s]+n(--s,d) а вот тут ошибка!
хочу посчитать сумму через рекурсию, и вот такой вопрос, разве не сохраняется в рекурсии значение первого слагаемого до вызова след функции? я понимаю, что когда мы возвращаем управление функции, то s уже на 1 меньше начального, но ведь до вызова, d[s] был верным? почему в y не сохранилось промежуточное значение суммы?