C++程序设计基础第三章:函数
3.1函数的定义与调用
3.1.1函数定义
从用户使用的角度来看,C++有两种函数:标准库函数和用户定义的函数。
其中,标准库函数由C++系统定义并提供给用户使用,用户根据特定任务编写的函数称为自定义函数,自定义函数的形式与主函数的形式想类似,一般形式为: 类型 函数名([形式参数表])
{
语句序列
}
函数定义的第一行是函数的首部,以大括号相括的语句序列为函数体
其中,函数名是用户自定义标识符。类型是函数返回表达式的值的类型,简称为返回函数,可以是各种基本类型、结构类型或类类型。若无返回值,则使用空类型符void
形式参数表的一般形式为:
类型 参数1,类型 参数2,类型……参数n
函数没有返回值不等于不能接收或修改外部数据。
3.1.2函数调用
函数调用的一般形式:
函数名([实际参数表])
其中,实际参数中的各参数用逗号分隔,实际参数与被调用函数的形式参数表在个数、类型、位置上必须一一对应。
调用的两种形式:
(1)函数语句
函数调用可以作为一个语句,例
int main()
{ printmessage(); }
(2)函数表达式
函数可以通过return语句返回一个结果值。如果定义了这种具有返回值的函数,并且调用时需要使用函数的返回值,可以用表达式调用函数。
3.1.3函数原型
函数原型是函数的声明,作用是告诉编译器有关函数接口的信息:函数的名字、函数返回值的数据类型、函数的参数个数、参数类型和参数顺序。
课本表3.1 cmath中几个常用的数学函数原型
3.2函数参数的传递
函数定义首部的参数称为形式参数(简称形参),调用函数时使用的参数称为实际参数(实参)
3.2.1传值参数
1.值传递机制
在值传递机制中,作为实际参数的表达式的值被复制到由对应的形式参名所标识的对象中,成为形参的初始值。完成参数值传递之后,函数体中的语句对形参的访问、修改都是在这个标识对象上操作的,与实际参数对象无关。
(1)实参可以是常量,变量或表达式,但要求有确定的值。
(2)函数只能有唯一一个返回值,return语句可作为终止语句并控制返回值返回到主调函数。