C语言函数

最后更新于:2026年3月11日 下午

第1讲:函数

🔑 知识点讲解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
函数是代码复用的基本单位。

格式:
返回类型 函数名(参数列表) {
函数体
return 返回值
}

关键点:
1. 值传递:函数内修改形参不影响实参
2. 地址传递:传指针可以修改实参
3. 数组传参:数组名即地址,函数内可以修改原数组
4. 递归:函数调用自身,必须有终止条件

函数声明(原型):
如果函数定义在 main 之后,需要在前面声明。
int add(int a, int b); // 声明

✏️ 练习:递归求斐波那契数列

题目:用递归和非递归两种方式实现斐波那契数列第 n 项。
F(1)=1, F(2)=1, F(n)=F(n-1)+F(n-2)

输入10
输出55

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <stdio.h>

// 方法1:递归(简洁但效率低,O(2^n))
int fib_recursive(int n) {
if (n <= 2) return 1;
return fib_recursive(n - 1) + fib_recursive(n - 2);
}

// 方法2:迭代(推荐,O(n))
int fib_iterative(int n) {
if (n <= 2) return 1;
int a = 1, b = 1, c;
for (int i = 3; i <= n; i++) {
c = a + b;
a = b;
b = c;
}
return b;
}

int main() {
int n;
scanf("%d", &n);
printf("递归: %d\n", fib_recursive(n));
printf("迭代: %d\n", fib_iterative(n));
return 0;
}

⚠️ 面试高频问题:递归的时间复杂度为 O(2^n),可以通过 记忆化动态规划 优化为 O(n)。


C语言函数
https://xtanguser.github.io/2026/03/10/C语言函数/
作者
小唐
发布于
2026年3月10日
许可协议