C++ 函数
函数(function)是一块独立的程序代码序列(code sequence),通常用于执行一些特定功能的运算。函数包含四个部分,即返回值类型(return type)、函数名称、参数列表(parameter list),以及函数体(function body)。
C++ 的函数可以分为:自定义函数和系统函数。在程序中,编写函数的主要目的是将一个需要很多行代码的复杂问题分解为一系列简单的任务来解决,而且同一个任务(函数)可以被多次调用,有助于代码重用。
什么是函数
我们可以将函数理解为完成某一功能的程序指令(语句)的集合。例如,我们写一个求两个 int
类型变量 x
和 y
中较大者的语句,如下:
int x = 128;
int y = 127;
int z;
if ( x > y )
z = x;
else
z = y;
如果我们此时还要求另外两个 int
类型变量 a
和 b
中较大者,可能写法如下:
int x = 128;
int y = 127;
int z;
if ( x > y )
z = x;
else
z = y;
int a = 255;
int b = 256;
int c;
if ( a > b )
c = a;
else
c = b;
多复杂啊,重复的代码写了一遍又一遍,能否复用下面这段代码呢?
int z;
if ( x > y )
z = x;
else
z = y;
答案是可以的,只要把这些语句封装成一个函数,就能实现复用的梦想。
封装一个函数,包括两部分:
- 函数 声明 告诉编译器函数的名称、返回类型和参数,这个是可选的;
- 函数 定义 提供了函数的实际主体,这个是必须的。
定义函数
C++ 中,函数由一个函数头和一个函数主体组成。其一般形式如下:
return_type function_name( parameter list )
{
// body of the function
}
return_type
返回类型
- 一个函数可以返回一个值;
- return_type 是函数返回的值的数据类型;
- 有些函数执行所需的操作而不返回值,在这种情况下,
return_type
是关键字void
。
function_name
函数名
- 这是函数的实际名称(标识符);
- 函数名和参数列表一起构成了函数签名。
parameter list
参数
- 参数就像是占位符;
- 当函数被调用时,需要向参数传递一个值,这个值被称为实际参数;
- 参数列表包括函数参数的类型、顺序、数量;
- 参数是可选的,也就是说,函数可能不包含参数。
body of the function
函数主体
- 函数主体包含一组定义函数执行任务的语句。
下面通过一段代码演示如何定义一个函数。我们定义的函数名叫 max
,它有两个 int
类型的参数 num1 和 num2,会返回这两个数中较大的那个数。
int max(int num1, int num2)
{
// 局部变量声明
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
函数声明
函数声明的作用是告诉编译器函数名称及如何调用函数。函数的实际主体可以单独定义(只能定义一次,但可以声明多次)。
声明一个函数的一般语法格式如下:
return_type function_name( parameter list );
return_type
是函数的返回值类型function_name
是函数的名称,必须是一个合法的 C++ 标志符parameter list
是函数的参数列表
例如我们想声明一个叫 max
的函数,通过传递两个 int
类型的参数 x
,y
,返回 x
,y
中的较大者,因为 x
,y
是 int
类型,那么返回值类型也为 int
。
以下是 max
的函数声明:
int max(int x, int y);