函数是通过调用过来执行的,如果不被调用即使定义了,也不能执行,main可以调用任何函数,而其他函数可以相互调用,但不能调用main,
函数包括库函数和自定义函数两种
库函数,由C++编译系统提供定义,编程时可以直接调用,不需要定义,
自定义函数,需要自己定义才可以调用,
函数的定义:指对该函数功能的确定,可简单分为对函数首部和函数体的定义,
函数首部,由数据类型标识符和函数名称构成,(数据类型标识符指明函数返回值的类型)
函数体 ,由一对花括号括住的部分,包含该函数所用到的变量的定义和有关操作,
1,无参函数的定义形式,
数据类型标识符 函数名()
{
声明部分
语句
}
说明,函数名后的一对空括号,表示该函数没有参数,但括号不可以省略,
声明部分,对函数体内部用到的变量进行定义,
在有些情况下,不要求无参函数有返回值,此时,函数数据类型标识符可以写为,“void”它表示函数没有返回值,
2,有参函数定义的一般形式,
数据类型标识符 函数名(形式参数列表)
{
声明部分
语句
}
形式参数表列,顾名思义就是存放形式参数的地方,形式参数可以是各种类型的变量,各个参数之间用逗号隔开。在调用该函数时,主调函数将会赋给这些形式参数实际的值,
函数的调用,函数通过被调用而执行,它是一个可以反复执行的程序段,调用一次就执行一次,
函数的调用
一般形式,
函数名(实际参数列表):
在C++中,有3种方式调用函数,
①函数表达式,以函数返回值参与表达式的运算,这种方式,要求调用的函数有返回值,例如,a=max(x.y)是一个赋值表达式,把max函数的返回值赋给变量a,
②函数语句,函数调用的一般形式加上分号即构成函数语句,这种调用方式一般不需要返回值,例如,“hello();”
③函数实参,函数作为另一个函数调用的实际参数出现,这种情况就是把该函数的返回值作为实参进行传送,要求该函数必须有返回值。例如,m=max(x.max(y.z));既把max(y.z)调用的返回值又作为外层max函数的实参来使用。
函数的参数
形式参数,在函数定义时,函数名后圆括号内的参数称为形式参数,简称形参,形参可以是各种数据类型的变量,形参,只有在函数被调用的时候才分配内存单元,调用结束便释放所分配的内存单元,简单来说,形参就是一个符号,它表示,它所在的位置应该有一个什么类型的数据,函数被调用时,主调函数将数据赋给形参,而,这些数据被称为实际参数,简称实参,这与数学中的函数概念类似,
例如,f(x)=x+1,只有当自变量x被赋值以后,才可以计算出函数的值,自变量x相当于形参,被赋的值相当于实参,
实参可以是常量,变量,表达式,函数等,无论实参是何种类型数据,在进行函数调用时,它们必须具有确定的值,以便把这些值传给形参,因此,应预先用赋值,输入等方法使实参获得确定值,
切记:实参可以把值传递给形参,而,形参不能传递给实参,它们之间的传递是单向的
就算形参的值发生改变,实参的值不会受到影响,即使同名变量也是如此。理由:它们分别属于不同函数,在内存中分别占用不同的内存单元,彼此独立。
函数的返回值
函数原型声明