C++ 函数

C++ 函数

函数是一组语句,一起完成一个任务。每个C++程序至少有一个函数,即 main() ,而所有最简单的程序都可以定义额外的函数。

您可以将代码分为多个函数。您在不同函数之间如何划分代码完全取决于您,但从逻辑上讲,每个函数通常执行特定的任务。

函数 声明 告诉编译器有关函数的名称、返回类型和参数。函数 定义 提供了函数的实际体。

C++标准库提供了许多内置函数,您的程序可以调用这些函数。例如,函数 strcat() 用于连接两个字符串,函数 memcpy() 用于将一个内存位置复制到另一个位置,以及许多其他函数。

函数可以有不同的名称,比如方法或子例程或过程等。

定义函数

C++函数定义的一般形式如下-

return_type function_name( parameter list ) {
   body of the function
}

C++函数定义由函数头和函数体组成。下面是函数的所有部分-

  • 返回类型 −函数可以返回一个值。返回类型是函数返回的值的数据类型。有些函数执行所需的操作但不返回任何值。在这种情况下,返回类型是关键字 void

  • 函数名 −这是函数的实际名称。函数名和参数列表共同构成函数签名。

  • 参数 −参数就像一个占位符。当调用函数时,您将一个值传递给参数。这个值被称为实际参数或参数。参数列表是指函数的参数的类型、顺序和数量。参数是可选的;也就是说,函数可以不包含任何参数。

  • 函数体 −函数体包含一组语句,定义函数的工作内容。

示例

以下是名为 max() 的函数的源代码。该函数接受两个参数num1和num2,并返回两者中较大的一个−

// function returning the max between two numbers

int max(int num1, int num2) {
   // local variable declaration
   int result;

   if (num1 > num2)
      result = num1;
   else
      result = num2;

   return result; 
}

函数声明

函数声明告诉编译器一个函数的名称以及如何调用该函数。函数的实际代码体可以单独定义。

函数声明包括以下几个部分:

return_type function_name( parameter list );

对于上面定义的max()函数,以下是函数声明:

int max(int num1, int num2);

参数名称在函数声明中并不重要,只需要它们的类型,因此以下也是有效的声明 –

int max(int, int);

在一个源文件中定义一个函数,并在另一个文件中调用该函数时,需要进行函数声明。在这种情况下,您应该在调用函数的文件的顶部声明该函数。

调用函数

在创建一个C++函数时,您会给出函数要执行的定义。要使用一个函数,您需要调用或调用该函数。

当程序调用一个函数时,程序控制被转移到所调用的函数。调用的函数执行定义的任务,当执行返回语句或者执行函数结束的固定括号时,将程序控制返回到主程序。

要调用一个函数,只需要将所需的参数和函数名一起传递,如果函数返回一个值,则可以存储返回的值。例如:

#include <iostream>
using namespace std;

// function declaration
int max(int num1, int num2);

int main () {
   // local variable declaration:
   int a = 100;
   int b = 200;
   int ret;

   // calling a function to get max value.
   ret = max(a, b);
   cout << "Max value is : " << ret << endl;

   return 0;
}

// function returning the max between two numbers
int max(int num1, int num2) {
   // local variable declaration
   int result;

   if (num1 > num2)
      result = num1;
   else
      result = num2;

   return result; 
}

我将max()函数与main()函数都保留,并编译了源代码。在运行最终的可执行文件时,会产生以下结果−

Max value is : 200

函数参数

如果一个函数要使用参数,它必须声明变量来接收这些参数的值。这些变量被称为函数的 形式参数

形式参数在函数内部与其他局部变量表现一样,在进入函数时创建,在退出函数时销毁。

在调用函数时,有两种方式可以将参数传递给函数:

编号 调用类型和描述
1 按值传递 此方法将实际参数的值复制到函数的形式参数中。在这种情况下,函数内部对参数的更改不会影响实际参数。
2 按指针传递 此方法将实际参数的地址复制到形式参数中。在函数内部,使用该地址访问调用中使用的实际参数。这意味着对参数的更改会影响实际参数。
3 按引用传递 此方法将实际参数的引用复制到形式参数中。在函数内部,使用该引用访问调用中使用的实际参数。这意味着对参数的更改会影响实际参数。

默认情况下,C++使用 按值传递 来传递参数。一般来说,在函数内部无法修改用于调用函数的参数,而上述示例在调用max()函数时使用了相同的方法。

参数的默认值

当你定义一个函数时,你可以为每个最后的参数指定一个默认值。如果在调用函数时对应的参数留空,将使用这个值。

这可以通过使用赋值运算符并在函数定义中为参数赋值来实现。如果在调用函数时未传递该参数的值,则使用默认给定的值,但如果指定了值,则忽略默认值,使用传递的值。看下面的示例:

#include <iostream>
using namespace std;

int sum(int a, int b = 20) {
   int result;
   result = a + b;

   return (result);
}
int main () {
   // local variable declaration:
   int a = 100;
   int b = 200;
   int result;

   // calling a function to add the values.
   result = sum(a, b);
   cout << "Total value is :" << result << endl;

   // calling a function again as follows.
   result = sum(a);
   cout << "Total value is :" << result << endl;

   return 0;
}

当上述代码被编译和执行时,它会产生以下结果 –

Total value is :300
Total value is :120

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程