C++ 函数:初学者的全面指南

你好,有抱负的程序员们!今天,我们将踏上一段激动人心的旅程,探索 C++ 函数的世界。作为你友好邻里的计算机科学老师,我在这里引导你了解这个将彻底改变你编写代码方式的基本概念。所以,请抓住你的虚拟座位,让我们一起潜入!

C++ Functions

函数是什么?

在我们开始编码之前,先来了解一下函数是什么。想象你在烤饼干(美味!)。你每次都会重新发明配方吗?不是的,你遵循一套指令 - 这在编程中本质上就是一个函数。它是执行特定任务的可重用代码块。

定义函数

让我们从 C++ 中如何创建函数的基础开始。

返回类型 函数名(参数列表) {
// 函数体
// 要执行的代码
return 值; // 可选
}

每个部分的意义如下:

  • 返回类型:函数将返回的数据类型(如 int、float、void 等)
  • 函数名:你给函数的唯一名称
  • 参数列表:函数所需的输入(可选)
  • 函数体:实际执行工作的代码
  • 返回值:函数产生的结果(如果适用)

示例:你的第一个函数

让我们创建一个简单的函数来问候一个人:

#include <iostream>
#include <string>
using namespace std;

void greet(string name) {
cout << "你好," << name << "!欢迎来到 C++ 函数!" << endl;
}

int main() {
greet("Alice");
return 0;
}

当你运行这段代码时,它将输出:

你好,Alice!欢迎来到 C++ 函数!

让我们分解一下:

  1. 我们定义了一个名为 greet 的函数,它接受一个 string 类型的参数 name
  2. 函数不返回任何内容,因此我们使用 void 作为返回类型。
  3. 在函数内部,我们使用提供的名称打印一条问候信息。
  4. main 函数中,我们调用 greet 并传递参数 "Alice"。

函数声明

有时,你可能想在定义函数之前声明它。这称为函数原型。就像是告诉 C++,“嘿,我稍后会创建这个函数,但现在我想让你知道它”。

// 函数声明
int add(int a, int b);

int main() {
int result = add(5, 3);
cout << "5 + 3 = " << result << endl;
return 0;
}

// 函数定义
int add(int a, int b) {
return a + b;
}

这在大型程序中特别有用,你可能会在 main 函数之后或在单独的文件中定义函数。

调用函数

你已经在之前的示例中看到了如何调用函数,但让我们更深入一点。当你调用一个函数时,程序会跳转到该函数的代码,执行它,然后返回之前停止的地方。

#include <iostream>
using namespace std;

void countDown(int start) {
for(int i = start; i > 0; i--) {
cout << i << "... ";
}
cout << "发射!" << endl;
}

int main() {
cout << "开始倒计时:" << endl;
countDown(5);
cout << "火箭已经发射!" << endl;
return 0;
}

这将输出:

开始倒计时:
5... 4... 3... 2... 1... 发射!
火箭已经发射!

在这里,我们从 main 函数中调用 countDown 函数。程序执行 countDown 函数,然后继续执行 main 的其余部分。

函数参数

函数可以接受多个参数,这使得它们更加灵活和强大。

#include <iostream>
using namespace std;

int calculateRectangleArea(int length, int width) {
return length * width;
}

int main() {
int area = calculateRectangleArea(5, 3);
cout << "一个 5x3 矩形的面积是: " << area << endl;
return 0;
}

这个函数接受两个参数(长度和宽度)并返回它们的乘积(面积)。

参数的默认值

C++ 允许你为函数参数设置默认值。这意味着如果在调用函数时没有提供值,它将使用默认值。

#include <iostream>
using namespace std;

void printPowerLevel(string name, int level = 9000) {
cout << name << " 的力量等级是 " << level << "!" << endl;
}

int main() {
printPowerLevel("Goku", 8000);
printPowerLevel("Vegeta");  // 使用默认值
return 0;
}

这将输出:

Goku 的力量等级是 8000!
Vegeta 的力量等级是 9000!

在这个例子中,如果我们不指定一个力量等级,它默认为 9000(它超过 9000 了!)。

函数重载

C++ 允许你有多个同名函数,只要它们的参数列表不同。这称为函数重载。

#include <iostream>
using namespace std;

int add(int a, int b) {
return a + b;
}

double add(double a, double b) {
return a + b;
}

int main() {
cout << "整数相加: " << add(5, 3) << endl;
cout << "双精度浮点数相加: " << add(3.14, 2.86) << endl;
return 0;
}

这段代码定义了两个 add 函数 - 一个用于整数,一个用于双精度浮点数。C++ 会根据你提供的参数来决定使用哪一个。

常见的 C++ 函数方法

以下是一些你可能会遇到的常见 C++ 函数方法:

方法 描述 示例
max() 返回两个值中较大的一个 max(5, 10) 返回 10
min() 返回两个值中较小的一个 min(5, 10) 返回 5
abs() 返回绝对值 abs(-5) 返回 5
pow() 将一个数提升到一个幂 pow(2, 3) 返回 8
sqrt() 返回平方根 sqrt(25) 返回 5
round() 将一个数四舍五入到最近的整数 round(3.7) 返回 4
ceil() 向上取整到最近的整数 ceil(3.2) 返回 4
floor() 向下取整到最近的整数 floor(3.8) 返回 3

记住,要使用这些数学函数,你需要在程序中包含 <cmath> 头文件。

就这样!你已经迈出了进入 C++ 函数世界的第一步。记住,熟能生巧,所以不要害怕尝试这些概念。快乐编码,愿你的函数总是返回你期望的结果!

Credits: Image by storyset