🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# C++ 函数 > 原文: [https://www.programiz.com/cpp-programming/function](https://www.programiz.com/cpp-programming/function) #### 在本教程中,我们将借助示例学习 C++ 函数和函数表达式。 函数是执行特定任务的代码块。 假设我们需要创建一个程序来创建一个圆并为其着色。 我们可以创建两个函数来解决此问题: * 画圆的函数 * 给圆上色的函数 将复杂的问题分成较小的块可以使我们的程序易于理解和重用。 有两种函数: 1. **标准库函数**:在 C++ 中预定义 2. **用户定义的函数**:由用户创建 在本教程中,我们将主要关注用户定义的函数。 * * * ## C++ 用户定义函数 C++ 允许程序员定义自己的函数。 用户定义的函数将执行特定任务的代码分组,并为该组代码指定名称(标识符)。 从程序的任何部分调用该函数时,它们都将执行该函数主体中定义的代码。 * * * ### C++ 函数声明 声明函数的语法为: ```cpp returnType functionName (parameter1, parameter2,...) { // function body } ``` 这是一个函数声明的例子。 ```cpp // function declaration void greet() { cout << "Hello World"; } ``` 这里, * 该函数的名称为`greet()` * 该函数的返回类型为`void` * 空括号表示没有任何参数 * 函数体写在`{}`内部 **注意**:我们将在本教程的后面部分学习`returnType`和`parameters`。 * * * ### 调用函数 在上面的程序中,我们声明了一个名为`greet()`的函数。 要使用`greet()`函数,我们需要对其进行调用。 这就是我们可以调用上面的`greet()`函数的方法。 ```cpp int main() { // calling a function greet(); } ``` ![Working of C++ function](https://img.kancloud.cn/f3/d9/f3d9c3f30adbf3e28b8537d1eb06d483.png "Working of C++ function") 函数如何在 C++ 中工作 * * * ### 示例 1:显示文本 ```cpp #include <iostream> using namespace std; // declaring a function void greet() { cout << "Hello there!"; } int main() { // calling the function greet(); return 0; } ``` **输出** ```cpp Hello there! ``` * * * ### 函数参数 如上所述,可以使用参数(参数)声明函数。 参数是在声明函数时传递的值。 例如,让我们考虑以下函数: ```cpp void printNum(int num) { cout << num; } ``` 在此,`int`变量`num`是函数参数。 我们在调用函数时将值传递给函数参数。 ```cpp int main() { int n = 7; // calling the function // n is passed to the function as argument printNum(n); return 0; } ``` * * * ### 示例 2:带参数的函数 ```cpp // program to print a text #include <iostream> using namespace std; // display a number void displayNum(int n1, float n2) { cout << "The int number is " << n1; cout << "The double number is " << n2; } int main() { int num1 = 5; double num2 = 5.5; // calling the function displayNum(num1, num2); return 0; } ``` **输出** ```cpp The int number is 5 The double number is 5.5 ``` 在上面的程序中,我们使用了一个函数,该函数具有一个`int`参数和一个`double`参数。 然后,我们将`num1`和`num2`作为参数传递。 这些值分别通过函数参数`n1`和`n2`存储。 ![C++ function with parameters](https://img.kancloud.cn/f3/d9/f3d9c3f30adbf3e28b8537d1eb06d483.png "C++ function with parameters") 带参数的 C++ 函数 **注意**:调用函数时传递的参数类型必须与函数声明中定义的相应参数匹配。 * * * ### `return`语句 在以上程序中,我们在函数声明中使用了`void`。 例如, ```cpp void displayNumber() { // code } ``` 这意味着该函数不返回任何值。 也可以从函数返回值。 为此,我们需要在函数声明期间指定函数的`returnType`。 然后,`return`语句可用于从函数返回值。 例如, ```cpp int add (int a, int b) { return (a + b); } ``` 在这里,我们具有数据类型`int`而不是`void`。 这意味着该函数返回`int`值。 代码`return (a + b);`返回两个参数的总和作为函数值。 `return`语句表示函数已结束。 函数内`return`之后的任何代码均不执行。 * * * ### 示例 3:加两个数字 ```cpp // program to add two numbers using a function #include <iostream> using namespace std; // declaring a function int add(int a, int b) { return (a + b); } int main() { int sum; // calling the function and storing // the returned value in sum sum = add(100, 78); cout << "100 + 78 = " << sum << endl; return 0; } ``` **输出** ```cpp 100 + 78 = 178 ``` 在上述程序中,`add()`函数用于查找两个数字的和。 在调用函数时,我们传递了两个`int`字面值`100`和`78`。 我们将函数的返回值存储在变量`sum`中,然后进行打印。 ![Working of C++ Function with return statement ](https://img.kancloud.cn/f3/d9/f3d9c3f30adbf3e28b8537d1eb06d483.png "Working of C++ Function with return statement ") C++ 函数与`return`语句的配合使用 注意,`sum`是`int`类型的变量。 这是因为`add()`的返回值是`int`类型的。 * * * ### 函数原型 在 C++ 中,函数声明的代码应在函数调用之前。 但是,如果要在函数调用之后定义函数,则需要使用函数原型。 例如, ```cpp // function prototype void add(int, int); int main() { // calling the function before declaration. add(5, 3); return 0; } // function definition add(int a, int b) { cout < (a + n); } ``` 在上面的代码中,函数原型为: ```cpp void add(int, int); ``` 这为编译器提供了有关函数名称及其参数的信息。 这就是为什么我们可以在定义函数之前使用代码来调用函数。 函数原型的语法为: ```cpp returnType functionName(dataType1, dataType2, ...); ``` * * * ### 示例 4:C++ 函数原型 ```cpp // using function definition after main() function // function prototype is declared before main() #include <iostream> using namespace std; // function prototype int add(int, int); int main() { int sum; // calling the function and storing // the returned value in sum sum = add(100, 78); cout << "100 + 78 = " << sum << endl; return 0; } // function definition int add(int a, int b) { return (a + b); } ``` **输出** ```cpp 100 + 78 = 178 ``` 上面的程序与**示例 3** 几乎相同。 唯一的区别是,此处在函数调用之后定义了**函数**。 这就是我们在此示例中使用函数原型的原因。 * * * ### 使用用户定义函数的好处 * 函数使代码可重用。 我们可以声明一次并多次使用它们。 * 通过将每个小任务划分为一个函数,函数使程序更容易。 * 函数增加了可读性。 * * * ## C++ 库函数 库函数是 C++ 编程中的内置函数。 程序员可以通过直接调用库函数来使用它们; 他们不需要自己编写函数。 C++ 中一些常见的库函数是`sqrt()`,`abs()`,`isdigit()`等。 为了使用库函数,我们通常需要包括在其中定义这些库函数的头文件。 例如,为了使用诸如`sqrt()`和`abs()`之类的数学函数,我们需要包括头文件`cmath`。 * * * ### 示例 5:查找数字的平方根的 C++ 程序 ```cpp #include <iostream> #include <cmath> using namespace std; int main() { double number, squareRoot; number = 25.0; // sqrt() is a library function to calculate the square root squareRoot = sqrt(number); cout << "Square root of " << number << " = " << squareRoot; return 0; } ``` **输出** ```cpp Square root of 25 = 5 ``` 在此程序中,`sqrt()`库函数用于计算数字的平方根。 `sqrt()`的函数声明在`cmath`头文件中定义。 这就是为什么我们需要使用代码`#include <cmath>`来使用`sqrt()`函数的原因。 要了解更多信息,请访问 [C++ 标准库函数](/cpp-programming/library-function)。