跳转到内容

函数

函数是可重用的代码块,用于执行特定任务。

返回类型 函数名(参数列表) {
// 函数体
return 返回值;
}
// 无参数,无返回值
void sayHello() {
cout << "Hello!" << endl;
}
// 有参数,有返回值
int add(int a, int b) {
return a + b;
}
// 调用函数
int main() {
sayHello();
int result = add(3, 5);
cout << "3 + 5 = " << result << endl;
return 0;
}
void changeValue(int x) {
x = 100; // 只改变局部变量
}
int main() {
int num = 10;
changeValue(num);
cout << num << endl; // 输出:10(没有改变)
return 0;
}
void changeValue(int &x) {
x = 100; // 改变了原始变量
}
int main() {
int num = 10;
changeValue(num);
cout << num << endl; // 输出:100(改变了)
return 0;
}
int add(int a, int b) {
return a + b;
}
double add(double a, double b) {
return a + b;
}
int main() {
cout << add(3, 5) << endl; // 调用 int 版本
cout << add(3.5, 2.5) << endl; // 调用 double 版本
return 0;
}
void printMessage(string msg, int times = 1) {
for (int i = 0; i < times; i++) {
cout << msg << endl;
}
}
int main() {
printMessage("Hello"); // 输出一次
printMessage("Hello", 3); // 输出三次
return 0;
}
// 计算阶乘
int factorial(int n) {
if (n <= 1) return 1;
return n * factorial(n - 1);
}
// 计算斐波那契数列
int fibonacci(int n) {
if (n <= 1) return n;
return fibonacci(n - 1) + fibonacci(n - 2);
}
int main() {
cout << "5! = " << factorial(5) << endl; // 输出:120
cout << "fib(10) = " << fibonacci(10) << endl; // 输出:55
return 0;
}
#include <cmath>
int main() {
cout << abs(-5) << endl; // 绝对值:5
cout << sqrt(16) << endl; // 平方根:4
cout << pow(2, 3) << endl; // 幂:8
cout << max(3, 5) << endl; // 最大值:5
cout << min(3, 5) << endl; // 最小值:3
return 0;
}
#include <string>
#include <algorithm>
int main() {
string s = "Hello";
cout << s.length() << endl; // 长度:5
cout << s.substr(0, 3) << endl; // 子串:Hel
// 转换为大写
transform(s.begin(), s.end(), s.begin(), ::toupper);
cout << s << endl; // 输出:HELLO
return 0;
}
  • 函数名应该描述函数的功能
  • 每个函数只做一件事
  • 函数不宜过长,保持在 20 行以内
  • 使用有意义的参数名
  • 在函数前写注释说明功能