值传递和址传递

作者 : admin 本文共387个字,预计阅读时间需要1分钟 发布时间: 2024-06-15 共1人阅读

值传递

值传递和址传递插图

上面的代码是想要交换x,y的值,把x,y传递给swap函数之后,执行下面的操作:

值传递和址传递插图(1)在swap中a和b交换了,但是和x,y没有关系,所以x,y在main中不会变。

址传递

下面再看把x,y的地址&x,&y传给swap,swap使用两个指针变量接受它们。

swap中的*a,*b是对地址的解引用,即*a就是x,*b就是y。所以交换了x和y的值

下面是具体步骤:

值传递和址传递插图(2)

值传递和址传递插图(3)

交换两个变量的指针不会改变变量的地址,也不会改变变量的值

再看交换x和y的指针,这个交换的是a,b指向的地址,并没有交换 x和y的值值传递和址传递插图(4)

值传递和址传递插图(5)

想要交换x和y的地址是不能实现的。因为这些变量通常存储在栈(stack)或堆(heap)的固定位置,并且它们的地址是由编译器或运行时环境自动管理的。

引用:交换变量的值

下面是使用引用的方法交换两个变量的值,

把x,y传给swap,swap使用&a,&b接受。引用就相当于形参通过别名的方式操作实参。

值传递和址传递插图(6)

本站无任何商业行为
个人在线分享 » 值传递和址传递
E-->