Recursion :

When function is called within the same function, it is known as recursion in C. The function which calls the same function, is known as recursive function. A function that calls itself, and doesn't perform any task after function call, is know as tail recursion. In tail recursion, we generally call the same function with return statement. 

Features : 

 There should be at least one if statement used to terminate recursion.  It does not contain any looping statements. 

Advantages :  

It is easy to use.  It represents compact programming structures. 

Disadvantages : 

 It is slower than that of looping statements because each time function is called .