|
函数的返回值是指函数被调用之后,执行函数体中的程序段所取得的并返回给调用函数的值。对函数的返回值(或称函数的值)有以下一些说明。
|
|
|
(1)函数的值只能通过return语句返回主调函数。return语句的一般形式为:
|
|
|
|
|
|
该语句的功能是计算表达式的值,并返回给调用函数。在函数中允许有多个return语句,但每次调用只能有一个return语句被执行,因此只能返回一个函数值。
|
|
|
(2)函数值的类型和函数定义中函数的类型应保持一致。如果两者不一致,则以函数类型为准,自动进行类型转换。
|
|
|
(3)如果函数值为整型,那么在函数定义时可以省去类型说明。
|
|
|
(4)不返回函数值的函数,可以明确定义为"空类型",类型说明符为void。
|
|
|
函数的参数分为形参和实参两种。形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。实参出现在调用函数中,进入被调函数后,实参变量也不能使用。形参和实参的功能是做数据传送。发生函数调用时,调用函数把实参的值传送给被调函数的形参,从而实现调用函数向被调函数的数据传送。
|
|
|
|
(1)形参变量在被调用时才分配内存单元,调用结束后,释放所分配的内存单元。
|
|
|
(2)实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时都必须具有确定的值,以便把这些值传送给形参。
|
|
|
(3)实参和形参在数量、类型、顺序上应严格一致,否则会发生"类型不匹配"的错误。
|
|
|
(4)函数调用中发生的数据传送是单向的,即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。因此在函数调用过程中,形参的值发生改变,而实参中的值不会发生变化。
|
|
|
通过函数的返回值只能得到一个值,要得到多个值,除了用全局变量来得到外,还可以改变参数的传递方式。因此,C语言提供了以下两种参数传递方式。
|
|
|
|
在函数的传值调用方式中,实参使用变量名或表达式,而形参使用变量名。在调用时,将实参复制一个副本给形参,使形参按照顺序从实参中获取值。这种方式不会影响调用函数中的实参值,只影响其复制副本的值。
|
|
|
|
在函数的传址调用中,实参使用变量的地址值,形参使用指针。在调用时,将实参的地址值传递给形参的指针,使形参指针指向实参变量。该种调用的特点是可以通过被调用函数中参数值的改变来改变调用函数中的参数值,这也是返回多个值的方式。
|
|
|