# Recursion in C programming

In this tutorial, we will get insight on what is recursion in C programming and how execution of recursive function takes place.

#### Syntax of recursion

``````void recursiveFunction()
{
... .. ...
recursiveFunction();
... .. ...
}

int main()
{
... .. ...
recursiveFunction();
... .. ...
}``````

In above example, recursiveFunction calls itself.

Recursion leads to infinite loop if it is not terminated. So there must be condition to end recursion in program.

#### Example to calculate factorial of entered number using recursive function

``````#include <stdio.h>

int factorial(int);

int main()
{
int num;
int result;

printf("Enter a number : ");
scanf("%d", &num);
if (num < 0)
{
printf("Factorial of negative number not possible\n");
}
else
{
result = factorial(num);
printf("The Factorial of %d is %d.\n", num, result);
}
return 0;
}
int factorial(int n)
{
if (n<= 1)
{
return 1;
}
else
{
return(n* factorial(n- 1));
}
}``````

#### Output

``````Enter a number : 3
The Factorial of 3 is 6.``````

In above example, the recursion occurs until  value of n <= 1  inside factorial  function. It works in following way: