首页 理论教育 C语言函数参数传递技巧

C语言函数参数传递技巧

时间:2023-11-23 理论教育 版权反馈
【摘要】:函数的参数分为形参和实参两种。发生函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。第一种称为值传递,即数据由实参到形参按值传送,且只能由实参传递给形参,而不能由形参传回来给实参,是单向值传递。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。

C语言函数参数传递技巧

函数的参数分为形参和实参两种。形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。形参和实参的功能是作数据传送。发生函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。

在定义函数时,函数名后面括号中的变量名称为“形式参数”,简称“形参”。

在调用函数时,函数名后面括号中的表达式称为“实际参数”,简称“实参”。

【例5-6】编写一个程序。输入长方体的长、宽和高,计算它的体积,输出体积的值。

程序分析

程序中定义了一个函数volume(),它有三个形参a、b、c。主函数中定义了四个整型变量l、w、h、v,分别用于存放长、宽、高和体积的值。通过键盘输入l、w、h的值,语句“v=volume(l,w,h);”中,l、w、h是实参,将它们的值对应传给形参a、b和c,使两个函数中的数据发生联系。

程序代码如下:

【程序说明】

(1)在定义函数中指定的形参变量,在未出现函数调用时,它们并不占内存中的存储单元,只有在发生函数调用时,函数中形参才被分配内存单元。在调用结束后,形参所占的内存单元也被释放。因此,形参只有在函数内部有效。函数调用结束返回主调函数后则不能再使用该形参变量。(www.xing528.com)

(2)实参可以是常量、变量或表达式,但要求它们有确定的值。在调用时将实参的值赋给形参变量,如果形参是数组名,则传递的是数组首地址

(3)在定义的函数中,必须指定形参的类型。

(4)实参与形参在数量、类型、顺序上应严格一致,否则会发生类型不匹配的错误。只有字符型与整型可以互相通用。

在计算机语言中,将参数传递到子程序中的方法有两种。第一种称为值传递,即数据由实参到形参按值传送,且只能由实参传递给形参,而不能由形参传回来给实参,是单向值传递。

在值传递中,实参单元与形参单元是不同的存储单元。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。因此,在执行一个被调用函数时,形参的值如果发生改变,并不会改变主调函数的实参的值。

【例5-7】阅读程序,看看调用函数swap后实际参数值有没有交换。

程序代码如下:

在swap函数中交换了形参x和y的值,x=3,y=5,但是形参和实参是不同的变量,各自占不同的存储空间,所以实参x和y的值并不受影响,函数调用时把实际参数传递给形参,实参本身的值并没有发生改变。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈