函数的数据传递

来源:互联网 发布:squid代理 java程序 编辑:程序博客网 时间:2024/06/06 15:02

从函数的形式看,函数可以分为无参函数和有参函数两类。在调用无参函数时,主调函数并不将数据传递给被调函数,调用函数一般是为了执行一定的操作;在调用有参函数时,主调函数与被调函数之间有数据传递关系。

一、值传递

在数组元素作为函数实参(数组元素不能用作形参)时,把实参的值传递给形参,是“值传递”方式。数据的传递方向是有实参到形参,单向传递。

在调用函数过程中,系统会实参的值传递给被调用函数的形参。或者说,形参从实参得到一个值。该值在函数调用期间有效,可以参加该函数中的运算。其中,实参可以是常量、变量或表达式,但要求它们有确定的值;而且实参与形参的类型应该相同或赋值兼容。函数执行完毕,被调用函数通过return语句将函数值带回到主调语句。最后调用结束,形参单元被释放。在这种函数调用方式中函数最多只能返回一个值、

二、地址传递

数组名也可以作为函数参数(包括实参和形参)。用数组名作为函数的实参时,向形参(数组名或指针变量)传递的是数组首元素的地址。

在此过程中,系统给实参分配存储空间,再将实参获得的存储空间的地址传递给形参,从而就能实现被调用函数返回多个值给主调函数。

 

0 0