C 语言递归轻松入门:编写与使用递归函数
C 语言递归轻松入门
本教程从核心概念到求和自然数实战示例,带你掌握 C 语言递归函数的编写与使用。
递归函数是调用自身的函数。这种自引用技术——递归——通过将问题分解为更小的同构子问题来求解。
递归工作原理
void recurse() {
// 预处理
recurse(); // 递归调用
// 后处理
}
int main() {
// 初始设置
recurse();
// 后续逻辑
}

递归重复直到达到停止条件——常称基准情况。用 if…else 守卫或类似结构确保函数最终终止,避免无限循环。
示例:递归求自然数和
#include <stdio.h>
int sum(int n);
int main() {
int number, result;
printf("Enter a positive integer: ");
scanf("%d", &number);
result = sum(number);
printf("sum = %d", result);
return 0;
}
int sum(int n) {
if (n != 0)
return n + sum(n-1); // 递归调用
else
return 0; // 基准情况
}
输出
Enter a positive integer: 3 sum = 6
此例中 sum() 从 main() 接收用户输入。函数以递减 n 自我调用直到 n 为零。基准情况返回 0,递归调用展开,逐层累加回 main()。

递归优缺点
递归常产生更简洁、可读代码,特别适合天然映射到递归结构的问题——如树遍历、阶乘、斐波那契数列。但递归因函数调用开销与调用栈内存占用,通常比迭代慢。性能关键代码可考虑迭代方案或记忆化优化。
尽管有潜在缺点,递归仍是计算机科学基石,支撑众多算法与数据结构操作。掌握递归让你以优雅精准方式攻克复杂问题。
C语言