【C语言】形参(形式参数)与实参(实际参数)

目录

形参与实参

形参(形式参数):

实参(实际参数):

实参和形参的关系:


形参与实参

在函数调用过程中把函数的参数分为,形参实参

形参(形式参数):

形式参数是指函数名后括号中的变量,因为形式参数只有在函数被调用的过程中才实例化(分配内存单元),所以叫形式参数。
形式参数当函数调用完成之后就自动销毁了。因此形式参数只在函数中有效。

举个简单的例子方便大家理解:

        在下面代码中,第2行定义函数的时候,在函数名Add的括号中写的xy,称为形式参数,简称形参,实际上,如果只是定义了Add函数而不去调用的话,Add函数的参数xy只是形式上存在的,并未向系统申请内存空间,不会真实存在于内存中,所以叫做形式参数。形式参数只有在函数被调用的过程中为了存放实际参数传递过来的值,才会向内存申请空间,这个过程就是形参的实例化。

实参(实际参数):

在调用有参函数时,函数名后面括号中的参数称为“实参”,是我们真实传给函数的参数,实参可以是:常量、变量、表达式、函数等。
无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。

 还是以上述代码为例子:

        在上面的代码中,2~7行是Add函数的定义,有了函数后,在17行我们调用Add函数。我们在17行调用Add函数时,传递给函数的参数ab,称为实际参数,简称实参,实际参数就是真是传递给函数的参数。

实参和形参的关系:

        虽然我们提到了形参与实参之间有联系,即实参是传递给形参的,但是形参和实参分别由自己独立的内存空间。这个现象可以通过调试进行观察,请看下面的代码和调试结果:

        当我们运行程序输入a,b的值分别为10和20的时候,a,b实际参数)的值通过调用Add函数传递给了x,y(形式参数)。通过监视窗口我们可以看到x=10,y=20,a=10,b=20,即x,y接收了来自a,b的值,但是通过监视a,b和x,y的地址即&a,&b和&x,&y可以看出形参与实参的地址并不相同,即形参和实参分别有自己独立的内存空间,当实参传递给形参时,形参是实参的一份临时拷贝对形参的修改是不会影响实参的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值