Could someone please explain to me the difference between these three blocks of code?
#include <stdio.h>
void f(int a)
{
printf("%d", a);
if (a >= 1)
f(--a);
printf("%d", a);
}
int main()
{
f(3);
return 0;
}
Output: 32100012
#include <stdio.h>
void f(int a)
{
printf("%d", a);
if (a >= 1)
f(a - 1);
printf("%d", a);
}
int main()
{
f(3);
return 0;
}
Output: 32100123
#include <stdio.h>
void f(int a)
{
printf("%d", a);
if (a >= 1)
f(a--);
printf("%d", a);
}
int main()
{
f(3);
return 0;
}
Output: Infinite printing of the number 3