2016 - 2024

感恩一路有你

c语言指针作为形参改变实参 在C语言里只有指针作为形参才能改变实参的值吗?

浏览量:1550 时间:2021-03-16 14:50:08 作者:admin

在C语言里只有指针作为形参才能改变实参的值吗?

准确地说,参数的值只能通过修改参数的地址来更改。指针传递地址,因此可以更改。函数的形式参数接受和指针变量。如果传递地址,就不必直接从指针获取变量的地址

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

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

因此,无论在子函数中如何修改调用它的函数的实际参数将不受影响

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

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

例如

#include<stdio。H>

void fun(int&x)

x=x1

void Main()

{

int a=5

fun(a)

printf(%d,a)

}

只需在参数前添加一个&

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

c语言指针作为形参改变实参 指针什么时候能改变实参的值 什么情况下形参可以改变实参

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