函数的应用¶
函数之间的调用¶
main 调用 f,f 里面还可以再调用另一个函数 f2。
进入调用的函数,执行完再返回,不是所有函数一起执行。

变量的作用范围¶
函数里的参数、局部变量,只在对应的作用范围里使用。
f 里的 a,与 main 里的 a,即使同名,也不是同一个局部变量,不打架。
合理命名,把变量定义在合适的位置,是基本的代码习惯。

下面这份代码,想一想会不会报错,为什么?

传值参数¶
普通 int 参数,传进去的是值的副本。
#include <iostream>
using namespace std;
void change(int x) {
x++;
}
int main() {
int x = 10;
change(x);
cout << x; // 仍然输出10
return 0;
}
函数里的 x 是副本,改了它,main 里的 x 不变。引用和数组参数,后面再学。
判断质数的代码模板¶
请严格模仿↓↓↓
#include <iostream>
using namespace std;
bool is_prime(int n) {
if (n < 2) return false;
for (int i = 2; i <= n / i; i++)
if (n % i == 0) return false;
return true;
}
int main() {
int x;
cin >> x;
if (is_prime(x)) cout << "Yes";
else cout << "No";
return 0;
}
小于 2,返回 false。 不是质数。
找到因数,返回 false。 不用继续试。
循环结束,返回 true。 试完都没找到因数,是质数。
return true; 放在循环外面。 不能只试了一个数,就判断是质数。
i <= n / i 与这里的 i * i <= n 判断范围相同,但避免了乘法超出 int 范围。
函数声明(先不看)¶
如果把函数的完整定义写在 main 后面,需要在调用前,先声明它。
初学时,先把函数完整写在 main 前面,写法简单一些。