文档介绍:C++语言程序设计
第五章函数
第五章函数
函数的定义
函数的调用
函数的嵌套调用
递归函数
作用域与生命期
C++语言程序设计
第五章函数
一般形式为:
数据类型函数名(形参表)
{
语句序列;
}
其中:
,数据类型习惯用
void 来表示。如果在函数定义时没有数据类型出现,则默认表示函数返回一个整型值。
函数名是一个有效的C++标识符。在C++程序中,除了main函数外,其它的函数名可
用户自行定义。为养成良好的程序设计风格,应给函数命名一个能反映函数功能,有助
于记忆的标识符。
C++语言程序设计
第五章函数
3. 形参表
形参表,是用逗号隔开的一个变量名说明列表,这些变量称作函数的形参,用于在函数调用时传送数据。在函数定义中,形参的个数是按函数需要而设定的,也可以没有形参。对于没有形参的函数,形参表用void表示,此时也可省略形参表,但函数名之后的一对圆括号不可省略。根据函数定义中有无形参,可将函数分为两类:无参函数与有参函数。
每个参数必须同时说明参数类型和参数名,其一般形式为:
数据类型变量名1,数据类型变量名2,.....,数据类型变量名N
4. 函数体
由花括号所括起的语句序列称为函数体。它定义了函数为完成某项功能所要执行的具体操作。这些操作,既可以用语句来描述,也可以通过调用另一些已定义的函数来实现。也就是说,函数体中既包含C++中的语句,也可以调用其它函数(main函数除外)。当函数执行结束需要返回一个值时,在这个函数体中还必须有一个return语句。
C语言还允许出现函数体为空的函数,称之为空函数。如:
empty()
{
}
C++语言程序设计
第五章函数
函数原型
C++语言规定:函数名必须先说明后使用。因此,当对一个函数的调用出现在该函数定义之前时,必须先对函数进行原型说明。
函数原型也称函数模式。C++要求为程序中所有函数构造原型。函数原型标识一个函数的返回值类型,同时也标识出该函数参数的个数和类型。为函数构造原型非常简单,在C++程序中,可使用与函数定义中的函数说明相同的格式来说明一个函数原型。
数据类型函数名(参数类型说明列表);
其中“参数类型说明列表”是用逗号隔开的一个参数类型说明,其参数个数和指定的类型必须和函数定义中的参数个数和类型一致。由于函数原型是一条语句,因此函数原型必须以分号结束。函数原型不必包含参数的名字,可只包含参数的类型。
C++语言程序设计
第五章函数
函数的调用
C++语言程序设计
第五章函数
函数调用一般格式为:
函数名(实参表)
函数调用时提供的参数称为实在参数,简称实参。实参表可包含多个实参,它们之间用逗号隔开,实参可以是常量、变量,也可以是表达式。实参按它们出现的顺序、类型及个数要与形参一一对应。
无参函数的调用形式为:
 函数名()
其中函数名之后的一对圆括号是不能省略的。
按函数调用在程序中的作用,有两种不同类型的应用:
一是函数调用只是利用函数所完成的功能。此时,将函数调用作为一个独立的语句。这种应用不要求函数返回值。
二是函数调用是利用函数的返回值。或用这返回值继续进行表达式的计算,或输出函数返回值等。
比如:
w = min(u+v, a-b) + min(c, t) + ;
cout<< min(u -v, a+b));
函数的调用
C++语言程序设计
第五章函数
函数调用的执行过程描述如下:
(1)为函数的形参分配内存空间;
    
(2)计算实参表达式的值,并将实参表达式的值赋给对应的形参;
   
(3)执行函数体内的语句序列; 
   
(4)函数体执行完,或执行了函数体内的return语句(若return语句带表达式,则计算出该表达式的值,并以此值作为函数值)后,释放为这次函数调用分配的全部内存空间;
(5)将函数值(如果有)返回到函数调用处继续执行。
C++语言程序设计
第五章函数
【】计算变量a、b之和。
#include <>
int sum(int x, int y)
{
int temp;
temp = x+y;
return temp;
}
void main( )
{
int a, b, c;
a = 10; b = 5;
c = sum(a,b);
cout << c;
}
程序运行结果为:
15
main()为主调函数,sum()为被调用函数。函数调用表达式sum(a,b)的类型为int型。在函数调用过