函数¶
函数是什么¶
函数,是一段完成特定任务的代码。
给它起个名字,需要时用这个名字调用,就能执行这段代码。
同样的代码,不用反复抄,写成函数就能多次调用。
已经学过的库函数¶
| 函数 | 作用 |
|---|---|
abs、fabs |
绝对值 |
ceil、floor、round |
取整 |
pow、sqrt |
幂运算、开平方 |
swap |
交换 |
max、min |
较大值、较小值 |
库函数是现成的,我们也可以自己写函数。
自定义函数¶
长这样的,就是自定义函数:
int 是返回值类型,f 是函数名,括号里的 a、b 是参数。
return a + b; 把计算结果返回给调用它的地方。
定义时,写好它怎么做;调用时,才会执行。
#include <iostream>
using namespace std;
int f(int a, int b) {
return a + b;
}
int main() {
int a, b;
cin >> a >> b;
int ans = f(a, b);
cout << ans;
return 0;
}
先把函数写在 main 前面,再在 main 里调用。
程序从 main 开始执行,调用 f 时进入 f,执行完再回到 main,接着往下走。
参数与返回值¶
参数,是调用时传进去的数据。
调用 f(3, 5):3 传给 a,5 传给 b,算出 8,返回后存进 ans。
定义里的 a、b 叫形参,调用时的 3、5 叫实参,按顺序对应。
参数可以没有,也可以有多个,个数、顺序和类型要对应好。
返回值,不是屏幕输出。
return 8; 把值交给调用处,cout << 8; 才是输出到屏幕。
只调用 f(3, 5);,但不接收、不输出它的结果,不会自动显示 8。
return,结束当前函数¶
执行到 return,当前这次函数调用就结束了。
这里先处理小范围整数,保证乘 2 的结果能放进 int。
返回值类型不是 void,就要注意各个分支有没有返回结果。
main 末尾的 return 0; 表示程序正常结束,不是让程序输出 0。
无返回值的函数¶
返回值类型写 void,表示不返回一个结果值。
需要提前结束这个函数,可以写 return;,不能写 return 123;。
常见错误¶
调用函数,别漏掉括号。
参数的个数、顺序、类型要对应。 这里的 f 需要两个整数。
cout 是输出,return 才是返回结果。
这里应改成 return a + b;,再由调用处决定是否输出。
普通函数的定义,写在 main 外面。 初学时,先写在 main 前面。