什么情况下形参可以改变实参 形参不能改变实参,为什么在用指针传递数值的时候又可以改变呢?
形参不能改变实参,为什么在用指针传递数值的时候又可以改变呢?
事实上,一个形式参数在传递一个实际参数给一个子函数时定义了一个新的变量,但是这个变量的值等于实际参数
所以不管你在子函数中如何修改它,调用它的函数的实际参数的值将不受影响
当使用指针作为参数时,因为我们传递的不是值本身,而是相应的地址。更改值时,我们会更改该地址中的值,因此可以通过传递指针来更改值
如果要修改在子函数中调用它的函数的值,可以使用引用函数
例如
#include<stdio。H>
void fun(int&x)
x=x1
void Main()
{
int a=5
fun(a)
printf(%d,a)
}]是在参数前面加上一个&
例如,定义INTF(intb),其中B是一个形式参数。当我们调用F时,我们写F(a),其中a是一个局部变量。当我们调用F时,它被称为实际参数。在f(a)之后,函数f中参数B的值由a给出,因此将实际参数的值传递给形式参数是正确的。形式参数的值不能传递给实际参数B=1000对参数a没有影响。但是,如果函数定义是指针,则函数可以更改存储在指针上的内容,但不能更改指针本身。从这个角度看,一个实际参数可以通过一个形式参数来改变
一个实际参数是一个在程序中分配了内存空间的参数。可以给它一个特定的值,例如常量、数组、地址(指针)、变量名、数组名或表达式。当然,它还包括一个指针变量。R参数是在编写被调用函数时定义的,目的是指定所用自变量的类型和要执行的操作。在调用函数之前,它不会被分配内存空间或给定特定的值。当R调用一个函数时,形式参数将被分配一个新的内存空间,实际参数的值将被“复制”进来,允许它参与被调用函数中的操作。参数本身不参与此操作,它只起传递值的作用(但在C中可以使用&更改参数的值)。如果参数是指针形式,则复制地址。让我们举一个非常简单的例子:output func1=6,B=5,参数B的值不变。右
什么情况下形参可以改变实参 实参和形参是双向传递的吗 数组做形参改变实参吗
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。