递归函数是指在函数体内调用自身的函数,通过递归函数可以解决一些重复性较强的问题,例如计算阶乘、斐波那契数列等。在使用递归函数时需要注意递归的终止条件,否则会导致栈溢出或者死循环。

下面是一个简单的例子,计算一个数的阶乘:

#include <stdio.h>

int factorial(int n) {
    if (n == 0) {
        return 1;
    } else {
        return n * factorial(n - 1);
    }
}

int main() {
    int n = 5;
    int result = factorial(n);
    printf("The factorial of %d is %d\n", n, result);
    return 0;
}

在上面的代码中,factorial 函数在 n 不为 0 的情况下会调用自身,并返回 n * factorial(n - 1) 的结果,直到 n 等于 0 为止。这时候递归终止,返回 1。

需要注意的是递归函数的性能可能较差,因为会消耗更多的内存和处理时间。在使用递归函数时应该谨慎,确保终止条件的正确性,避免出现死循环或栈溢出的情况。