函数的定义
1.格式 <函数值类型> <函数名>(<形参>)
{
函数体
}
2.函数值类型(返回值类型)
(1)返回简单类型:int 、long、float、double、char;(2)返回结构类型;(3)返回指针类型;(4)返回引用类型;(特别注意:void类型为空类型或无类型)
3.形式参数表:类型 形参名1,类型 形参名2 例如:int max(int a,int b)(注意:每个形参必须同时给出类型和形参名) 形参也可以没有;形参用于接收主函数传递的实参值;形参属于函数的局部变量,只在该函数中使用,函数结束后,自动释放形参所分配的存储空间;形参为引用类型或者指针类型时,可以改变形参的值。
4.函数体 return 表达式;用于返回函数执行的结果,表达式的值必须与函数返回值类型一致;一个函数可以有多个return语句,但在函数执行期间只有一个起作用;一个无返回值的函数,return语句可以省略。
5.函数的声明 函数必须先声明或先定义使用再使用 格式: 类型名 函数名(类型1 形参1,类型2 形参2,...);
6.函数调用 函数定义后,并不能自动执行,只能通过函数调用来实现函数的功能,主函数可以调用其他子函数,其他子函数之间也可以相互调用;调用格式:<函数名>(< 实际参数表>) 实参表与形参表个、的个数、类型和词序应保持一致 形参为简单类型时,实参可以是常量、变量、表达式;形参为数据时,实参为数据;形参为结构类型时,实参为结构类型
7.函数的传递方式 (1)值传递:函数的形参声明为简单类型或结构类型变量,实参与形参直接采用值传递,此时形参并不能改变实参的值; (2)引用传递:格式:<数据类型> &<引用名>=<目标变量名> 例如:int a,&a=b; 引用并不分配独立的储存空间,与目标变量共用其储存空间,引用名是目标变量的别名;通过引用传递可以改变实参的值; (3)为形参指定默认值,可以对部分形参定义默认值,但是默认值应该出现在从右到左的连续若干个形参中,例如:void max(int x,int y,int z=3); 数组元素做实参,对应的形参为变量,采用值传递,一次传递一个数;数组名做实参,对应的形参为一个数组,一次传递整个数组;数组做参数,类似于引用传递,实参数组与形参数组共用一个数组空间;一维数组的传递:格式:<l类型> <数组名>[] ;二维数组的传递:格式:<类型> <数组名>[][<列数>] ;结构体变量做实参,形参为同类型的结构变量,传递方式为值传递