2016 - 2024

感恩一路有你

形参改变为何不影响实参 形参不能改变实参,为什么在用指针传递数值的时候又可以改变呢?

浏览量:2007 时间:2021-03-15 06:55:52 作者:admin

形参不能改变实参,为什么在用指针传递数值的时候又可以改变呢?

事实上,一个形式参数在传递一个实际参数给一个子函数时定义了一个新的变量,但是这个变量的值等于实际参数

所以不管你在子函数中如何修改它,调用它的函数的实际参数的值将不受影响

当使用指针作为参数时,因为我们传递的不是值本身,而是相应的地址。更改值时,我们会更改该地址中的值,因此可以通过传递指针来更改值

如果要修改在子函数中调用它的函数的值,可以使用引用函数

例如

#include<stdio。H>

void fun(int&x)

x=x1

void Main()

{

int a=5

fun(a)

printf(%d“,a)

}]是在参数前加一个&

当用数组名作形参时,形参数组改变可使实参数组随之改变 . 这句话哪里错了,求详细解答?

1。Array name

定义一个数组,数组名为静态地址,表示数组的第一个地址。静态意味着你不能改变。

2、参数传递

函数参数传递是值传递,即实际参数的值传递给子函数。当使用数组名作为形式参数时,子函数接收主函数中数组的第一个地址值

!3、形式参数数组和实际参数数组??

这就是你所说的吗?综上所述,形式参数可以改变子函数中形式参数所指向的数组的内容,而实际参数所对应的数组的内容也会随之改变。因为,这是通过地址来改变地址的内容。

c语言中指针作为形参,代码如下?

您需要使用*取消引用以更改指向内存的指针的值。你的交换功能有问题。有人给了你正确的写作方法。至于为什么*x和*y的值没有改变,因为你交换了两个形式参数的值。尽管您传入了指针,但并不将它们用作指针。最终结果与传递非指针值的结果相同。如果要真正更改参数的值,必须交换指针指向的内存,而不是简单地交换指针变量本身。形式参数通过堆栈传递。只有使用*x=1这样的语句来操作指针指向的内存,才能影响实际参数。否则,实际参数的值不会改变。其实最好的办法就是去VS调试运行,仔细观察运行过程,就可以更清楚地理解指针。一个简单的理论是站不住脚的,一出来就很清楚了。我想帮助你。

形参改变为何不影响实参 形参和实参举例 c语言形参和实参的区别

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。