函数(第九次课)

函数的四种形式:1.返回类型 函数名(类型名 形参1,类型名 形参2......);    //函数的声明

                             2.返回类型 函数名(类型名 形参1,类型名 形参2......)(无分号!)                

                                    {

                                            函数体
                                    }                                                                                  //函数的定义

                              3.变量=函数名(实参1,实参2......);                           //函数的调用

                              4.函数名;                                                                       //函数的地址形参

函数调用:函数调用时将实参的值赋给形参,形参的改变不会影响实参,换句话说,一旦将实参的值赋给形参后,两者不再联系。若是想改变实参,则应该将形参定义为地址,将实参的地址赋给形参。返回值:返回值不是直接将形参的值返回给实参,因为一旦函数运行完毕给它所分配的栈中的数据都会被释放,所以形参的值是先赋给一个临时量(临时空间),而后再将临时量的值返回给实参,并且实参具有常性(只可读不可写) 例如  :MAX_(x,y)=100;    是错误的 因为返回值(将亡值)是常性的,即右值。

函数调

用的过程如下图所示:

形参:只有在调用函数时才会为其分配空间,赋值,而且一旦函数调用完毕,分配的空间会被立即释放,所以它的作用域仅在该函数内。

实参:调用函数时给出的参数包含实实在在的数据,所以称为实际参数。实参可以是常数,表达式,函数,变量等,在进行函数时它们必须有确定的值。

定义实参,形参时:参数应该为自变量,即:有自变量作用的变量。

定义形参时,编写代码时用调用scanf的冲动的值定为形参,同理有想调用printf的冲动的变量作为返回值。

数组元素可以作为函数的实参,不能作为函数的形参。

因为形参是在函数被调用时临时分配存储单元的,不可能为一个数组元素单独分配存储单元(数组是一个整体在内存中占连续的一段存储单元)。

一维数组名做函数参数:

(1)用数组名做函数参数时,应在主调函数与被调函数分别定义数组。

(2)实参数组与形参数组类型必须一致。

(3)形参数组可以不指定大小,在定义数组时在数组名后加空的方括号。

例如:float average(float array[]) 

因为指定形参大小是不起作用的,因为C语言编译系统不会检查形参的数组的大小,只是将实参数组的首元素的地址传给形参数组名,形参数组名获得了实参数组的首元素地址,因为数组名代表数组的地址,因此可以认为形参数组与实参数组具有同一地址,它们占同一存储单元,所以被调函数中对形参数组的操作会改变实参数组的值。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值