Recursion in C language is the process of calling same function from itself. Recursion is like a loop, that call itself, so to exit from the recursion process we need to define the exit condition.

Syntax of recursion
return_type function_name (args..)
{
    statements;
    ...
    ..
    function_name(args..);
}
Example
void myFunction()
{
    myFunction();
}

int main()
{
    myFunction();
}

Program to find factorial of number using recursion

#include<stdio.h>

unsigned long long fact(int x)
{
    if(x <= 1 )
        return 1;
    return x*fact(x-1);
}
int main()
{
    int a = 5;
    printf("Factorial of 5 is %llu\n", fact(a));
    return 0;
}

Output

Factorial of 5 is 120

Program to find the power of function using recursion

#include<stdio.h>

unsigned long long power(int x, int y)
{

    if(y == 1)
        return x;
    return x*power(x, y-1);
}
int main()
{
    int a = 8, b=2;
    printf("%d power %d is %llu\n", a, b, power(a, b));
    return 0;
}

output

8 power 2 is 64