void func(int num){
if(num< 3){
printf("%d ", num);
func(num+ 1);
printf("%d ", num);
}
}
Предположим, что я вызываю эту функцию с помощью func (0). Почему результат 0 1 2 2 1 0? Я не знаю, почему он уменьшается.Рекурсия: не понимаю этого результата
Первые три цифры приходят от первого Printf, а вторые три цифры приходят из второго Printf как стек раскручивается. Чтобы убедиться, что лучше, попробуйте '' a:% d "и' "b:% d" 'как строки формата. – user3386109
Да, я понимаю, но почему это происходит от 2 до 0, для меня это не имеет смысла? –
Ваш код ничего не делает, поскольку функция никогда не вызывается. –