文档介绍:5 函数
1
C++程序设计课件设计制作:徐龙琴
函数的概述(产生、概念、分类)
函数的定义、声明和调用
内联函数
重载函数
函数的嵌套调用及递归调用
变量及函数的存储类型
本章要点:
2
C++程序设计课件设计制作:徐龙琴
§函数的概述
在早期的程序设计中,人们发现程序中经常会有大量重复的代码,为了
减少程序的书写量,常常把这些重复的代码从程序中抽出来,使其成为一个独
立的程序单位(子程序)并为其取一个名字,程序中需要这些代码的地方用相
应的名字来取代,即调用相应的子程序(又叫子函数)。
一个C++程序里包含一个主函数(即main函数)和若干个其它函数。由主函数调用其它函数,其它函数之间也可以互相调用。
我们用下图来说明程序,函数以及语句的关系:
3
C++程序设计课件设计制作:徐龙琴
函数:
就是能够完成一定功能的程序段,由函数头和函数体
组成
4
C++程序设计课件设计制作:徐龙琴
函数分类:
库函数:所谓库函数也称标准函数,由C++系统提供。能完
成一定的功能,其已编译为机器码。
数定义的形式(原型)。
main函数:每个Project(工程或项目)有且只有一个main()。执
行C++程序,也就是执行相应的main()函数。
自定义函数:完成用户所需的功能。
注意:
函数可以被一个函数调用,也可以调用另一个函数, C++程序
中调用函数之前,首先要对函数进行定义。
5
C++程序设计课件设计制作:徐龙琴
§函数的定义、声明和调用
一函数的定义格式:
返回值类型函数名(形式参数表)
{ 函数体;
}
返回值类型:
为任意的C++类型,也可以是void,它表示函数没
有返回值。也可以缺省,这时系统当int解释。
函数名:
为函数取得名字,应符合标识符的命名规则
6
C++程序设计课件设计制作:徐龙琴
形式参数表:
有0个或多个形参,用于向函数传送数值或从函数带
回数值,每个参数都有自己的类型多个形参说明用逗
号隔开。
形参说明的格式为:类型形参名
如果参数表列中参数个数为0,我们称之为无参函数,
无参函数可以定义为:
返回类型函数名( ) 或返回类型函数名(void)
{…} {…}
函数体:
为一个复合语句。它可以包含return语句(用于该函数
的结束控制)。
return语句的两种格式:1)return (表达式);
或return 表达式;
2)return;
7
C++程序设计课件设计制作:徐龙琴
1. void Hello( ) { cout<<" Hello,world"<<endl; }
。
long facto ( int x )
{ long y;
for (y=1; x>0; --x)
y*=x;
return (y);
}
函数名
形式参数表列
函数类型
函数体
函数返回
函数定义实例:
8
C++程序设计课件设计制作:徐龙琴
例3:求两个浮点数和的函数
double sum (double x, double y)
{ double z;
z = x + y;
return z;
}
double sum ( x, y)
double x;
double y;
{ double z;
z = x + y;
return z;
}
等价
9
C++程序设计课件设计制作:徐龙琴
函数定义时注意点:
(1)在一个函数体内允许有一个或多个return语句,一旦执行到其中某一
个return语句时,return后面的语句就不再执行,直接返回调用位置
继续向下执行。
(2)不允许函数嵌套定义,即在函数定义中再定义一个函数是非法的。
(3)定义函数时函数类型的说明,应与return中返回值表达式的类型一致。
如果不一致,则以函数类型为准。
(4)所有的函数都要先定义,后使用(调用)。
10
C++程序设计课件设计制作:徐龙琴