C++ 函数

在本文中,您将学习有关C ++中函数的所有知识。有哪些类型的函数,如何在示例中使用它们。

在编程中,函数是指将代码分组以执行特定任务的代码块。

取决于函数是预定义的还是由程序员创建的;函数有两种类型:

  1. 标准库函数

  2. 用户定义函数

标准库函数

库函数是C ++编程中的内置函数。

程序员可以通过直接调用函数来使用库函数;他们不需要自己编写。

示例1:库函数

#include <iostream>
#include <cmath>

using namespace std;

int main()
{
    double number, squareRoot;
    cout << "输入一个数字: ";
    cin >> number;

    // sqrt()是一个用于计算平方根的库函数
    squareRoot = sqrt(number);
    cout << "数字 " << number << " 的平方根= " << squareRoot;
    return 0;
}

输出结果

输入一个数字: 26
数字 26 的平方根 = 5.09902

在上面的示例中,调用sqrt()库函数来计算数字26的平方根。

上述程序中的注意代码#include <cmath>。 在这里cmath是头文件。sqrt()函数定义在cmath头文件中。

当您使用#include <cmath>将文件cmath的内容包含到这个程序中时,您可以使用cmath中定义的所有函数。

每个有效的C ++程序至少具有一个函数,即main()函数。

用户定义函数

C ++允许程序员定义自己的函数。

用户定义的函数将执行特定任务的代码分组,并为该组代码指定名称(标识符)。

从程序的任何部分调用该函数时,它们都将执行函数主体中定义的代码。

用户定义函数在C编程中如何工作?

根据上图。

当程序开始运行时,系统将调用main()函数,即程序开始运行时从main()函数执行代码。

当程序的控制权到达main()内部的function_name()时,它将移至void function_name()并执行void function_name()内部的所有代码。

然后,程序的控制返回到主函数,在该函数中,如上图所示,执行了对function_name()的调用之后的代码。

示例2:用户定义的函数

C ++程序将两个整数相加。创建一个函数add()以添加整数并在main()函数中显示sum。

#include <iostream>
using namespace std;

// 函数原型(声明)
int add(int, int);

int main()
{
    int num1, num2, sum;
    cout<<"输入两个要相加的数字: ";
    cin >> num1 >> num2;

    // 调用函数
    sum = add(num1, num2);
    cout << "总和 = " << sum;
    return 0;
}

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

    // 返回语句
    return add;
}

输出结果

输入两个要相加的数字: 8
-4
总和 = 4

函数原型(声明)

如果在main()函数之后定义用户定义的函数,编译器将显示错误。这是因为编译器不知道用户定义的函数、传递给函数的参数类型和返回类型。

在C ++中,函数原型是函数的声明,而没有它的主体来提供有关用户定义函数的编译器信息。 上例中的函数原型为:

int add(int, int);

你可以看到,原型中没有函数体。而且,只有返回类型的参数,没有参数。您也可以像下面这样声明函数原型,但不需要编写参数。

int add(int a, int b);

注意:如果用户定义的函数在main()函数之前存在,则不必定义原型。

函数调用

要执行功能主体的代码,需要调用(调用)用户定义的功能。

在上面的程序中,add(num1,num2);内部main()函数调用用户定义的函数。

该函数返回一个整数,该整数存储在variable中add。

函数定义

函数本身称为函数定义。上面程序中的函数定义是:

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

当函数被调用时,控制被转移到函数体的第一个语句。

然后,依次执行函数体中的其他语句。

当函数定义中的所有代码都被执行时,程序的控制移动到调用程序。

将参数传递给函数

在编程中,参数(parameter)是指在调用函数时传递给函数(函数定义)的数据。

在上面的示例中,两个变量num1和num2在函数调用期间被传递给函数。这些参数称为实际参数。

num1和num2的值分别初始化为变量a和b。 这些参数a和b称为形式参数。

如下图所示:

关于传递参数的注意事项

  • 实际参数和形式参数的数量应相同。(例外:函数重载

  • 第一个实际参数的类型应与第一个形式参数的类型匹配。同样,第二个实际参数的类型应该与第二个形式参数的类型匹配,依此类推。

  • 您可以在不传递任何参数的情况下调用函数a。 传递给函数的参数数量取决于程序员如何解决问题。

  • 您可以为参数指定默认值。这些参数称为默认参数

  • 在上面的程序中,两个参数都是int类型。但是没有必要同时使用两个相同类型的参数。

return 语句

函数可以使用return语句将单个值返回到调用程序。

在上面的程序中,使用以下语句将add的值从用户定义函数返回到调用程序:

return add;

下图演示了return语句的工作。

在上面的程序中,将用户定义函数中的add值返回给调用函数。然后该值被存储到一个变量sum中。

注意返回的变量,即add是int类型,sum也是int类型。

另外,请注意,函数的返回类型是在函数声明符int add(int a, int b)中定义的,在add(int a, int b)之前的int表示函数应该返回一个int类型的值。

如果没有值返回到调用函数,则应使用void。