Я пытаюсь узнать кое-что о рекурсивной функции, и я пытаюсь запустить это
void recurse()
{
static int c = 1;
if(c > 5)
return ;
printf("%d ",c);
c = c + 1;
recurse();
printf("%d ",c);
}
int main()
{
recurse();
return 0;
}
Я ожидаю, что она выдаст мне такой же вывод, как и любая локальная переменная, вызываемая в рекурсивнойfunction.
1 2 3 4 5 5 4 3 2 1
Но компилятор дает мне вывод, подобный этому
1 2 3 4 5 6 6 6 6 6
Я не могу понять, почему вывод такого рода происходит.Кто-нибудь может объяснить?