函数
函数
函数的概念
大家在学校里都有值日的经历吧。比如打扫教室这件事,有扫地、擦黑板、摆桌椅等一系列固定的步骤。如果每次值日都要重新说一遍这些步骤,那就太麻烦了。于是呢,老师会把打扫教室的步骤写下来贴在墙上,以后每次值日,同学们照着这个步骤来做就行。在编程里,函数就像是这张写着值日步骤的纸。它把完成特定功能的一段代码集合在一起,当我们需要实现这个功能时,直接“照着做”,也就是调用这个函数,而不用每次都重新写一遍代码。

函数的定义
定义函数就好比写值日的步骤。我们要告诉计算机这个函数叫什么名字,做这件事需要用到哪些“工具”(也就是参数),以及做完之后会有什么“成果”(也就是返回值)。
基本语法
返回值类型 函数名(参数列表) {
// 函数体,这里写实现功能的代码
return 返回值; // 如果有返回值,就用 return 语句返回
}定义示例
// 定义一个函数,名字叫 add,它能把两个整数相加
// 返回值类型是 int,表示这个函数会返回一个整数
// 参数列表里有两个 int 类型的参数,分别叫 a 和 b
int add(int a, int b) {
// 函数体,计算 a 和 b 的和
int sum = a + b;
// 返回计算结果
return sum;
}函数的调用
定义好函数后,就可以在其他地方使用这个函数,这就是函数的调用。调用函数就像同学们按照写好的值日步骤去打扫教室。

#include <iostream>
using namespace std;
// 定义一个函数,名字叫 add,它能把两个整数相加
int add(int a, int b) {
int sum = a + b;
return sum;
}
int main() {
// 调用 add 函数,把 3 和 5 作为参数传递给它
// 函数返回的结果会赋值给变量 result
int result = add(3, 5);
// 输出函数的返回结果
cout << "3 + 5 的结果是:" << result << endl;
return 0;
}函数的传参
函数的参数就像是打扫值日需要用到的工具。在调用函数时,要把具体的“工具”(也就是实际的值)传递给函数。
传值调用
#include <iostream>
using namespace std;
// 定义一个函数,名字叫 change,它能把传入的参数的值乘以 2
void change(int num) {
num = num * 2;
// 输出函数内部参数的值
cout << "函数内部 num 的值是:" << num << endl;
}
int main() {
// 定义一个整数变量,名字叫 x,初始值为 10
int x = 10;
// 调用 change 函数,把 x 的值作为参数传递给它
change(x);
// 输出变量 x 的值,看看是否被改变
cout << "变量 x 的值是:" << x << endl;
return 0;
}在这个例子里,虽然在函数内部改变了参数 num 的值,但是函数外部的变量 x 的值并没有改变。这是因为传值调用只是把变量的值复制了一份传递给函数,函数内部操作的是这个复制的值,而不是原来的变量。
例题
例题 1:计算圆的面积
#include <iostream>
using namespace std;
// 定义一个函数,名字叫 circleArea,它能计算圆的面积
// 参数 r 表示圆的半径
// 返回值类型是 double,表示返回的面积是一个小数
double circleArea(double r) {
// 定义圆周率
const double PI = 3.14159;
// 计算圆的面积
double area = PI * r * r;
// 返回计算结果
return area;
}
int main() {
// 定义一个变量,保存圆的半径
double radius = 5.0;
// 调用 circleArea 函数,计算半径为 5 的圆的面积
double result = circleArea(radius);
// 输出圆的面积
cout << "半径为 " << radius << " 的圆的面积是:" << result << endl;
return 0;
}例题 2:判断一个数是否是质数
#include <iostream>
using namespace std;
// 定义一个函数,名字叫 isPrime,它能判断一个数是否是质数
// 参数 num 表示要判断的数
// 返回值类型是 bool,表示返回的结果是一个布尔值(真或假)
bool isPrime(int num) {
if (num < 2) {
// 如果 num 小于 2,它不是质数,返回 false
return false;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
// 如果 num 能被 i 整除,它不是质数,返回 false
return false;
}
}
// 如果上面的条件都不满足,num 是质数,返回 true
return true;
}
int main() {
// 定义一个变量,保存要判断的数
int number = 7;
// 调用 isPrime 函数,判断 number 是否是质数
bool result = isPrime(number);
if (result) {
// 如果 result 为 true,输出 number 是质数
cout << number << " 是质数。" << endl;
} else {
// 如果 result 为 false,输出 number 不是质数
cout << number << " 不是质数。" << endl;
}
return 0;
}通过上面的讲解和例题,你应该对函数的概念、定义、调用和传参有了基本的了解。函数能让我们的代码更有条理,也能提高代码的复用性。在使用函数时,要注意参数的类型和返回值的类型。
例题
Status
Problem
Tags