C++ 函数学习笔记

函数是 C++ 程序设计中最重要的组成部分之一。它们是可重用代码块,可以在程序中多次调用。这是一篇关于 C++ 函数的学习笔记。

函数的基本结构

C++ 函数定义由返回类型、函数名、参数列表和函数体组成。

cppCopy Code
返回类型 函数名(参数列表) { 函数体 }

以下是一个简单的函数示例:

cppCopy Code
int Max(int x, int y) { if (x > y) { return x; } else { return y; } }

这个函数名为 Max,返回类型为 int,它有两个参数 xy,它们都是整数类型。函数体检查两个参数的大小,如果 x 大于 y,则返回 x,否则返回 y

传递参数

C++ 中有两种传递参数的方式:传值和传引用。

传值

在传值的情况下,实参的值被复制到形参中。这意味着任何在函数内部对形参所做的更改都不会影响实参。

以下是一个传值的例子:

cppCopy Code
void swap(int x, int y) { int temp = x; x = y; y = temp; } int main() { int a = 3; int b = 4; swap(a, b); cout << "a = " << a << endl; // a = 3 cout << "b = " << b << endl; // b = 4 return 0; }

在这个例子中,swap() 函数尝试交换 xy 的值,但是由于使用了传值方式,实参 ab 的值没有变化。

传引用

在传引用的情况下,形参是实参的引用。这意味着对形参所做的更改会影响实参。

以下是一个传引用的例子:

cppCopy Code
void swap(int& x, int& y) { int temp = x; x = y; y = temp; } int main() { int a = 3; int b = 4; swap(a, b); cout << "a = " << a << endl; // a = 4 cout << "b = " << b << endl; // b = 3 return 0; }

在这个例子中,swap() 函数使用了传引用的方式,因此实参 ab 的值被成功交换了。

函数重载

函数重载是指在同一范围内定义多个同名函数的过程。这些同名函数可以有不同的参数列表和/或返回类型。

以下是一个函数重载的例子:

cppCopy Code
int Max(int x, int y) { if (x > y) { return x; } else { return y; } } double Max(double x, double y) { if (x > y) { return x; } else { return y; } }

Max() 函数被定义了两次,一次是传入整数参数,另一次是传入浮点数参数。如果调用 Max() 函数时传递整数参数,则调用第一个函数;如果传递浮点数参数,则调用第二个函数。

结论

函数是 C++ 程序设计中非常重要的概念。我们可以通过传值或传引用的方式向函数传递参数。我们还可以使用函数重载来定义多个功能类似但参数列表不同的函数。