本文主要是介绍值传递和址传递,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
值传递
上面的代码是想要交换x,y的值,把x,y传递给swap函数之后,执行下面的操作:
在swap中a和b交换了,但是和x,y没有关系,所以x,y在main中不会变。
址传递
下面再看把x,y的地址&x,&y传给swap,swap使用两个指针变量接受它们。
swap中的*a,*b是对地址的解引用,即*a就是x,*b就是y。所以交换了x和y的值
下面是具体步骤:
交换两个变量的指针不会改变变量的地址,也不会改变变量的值
再看交换x和y的指针,这个交换的是a,b指向的地址,并没有交换 x和y的值
想要交换x和y的地址是不能实现的。因为这些变量通常存储在栈(stack)或堆(heap)的固定位置,并且它们的地址是由编译器或运行时环境自动管理的。
引用:交换变量的值
下面是使用引用的方法交换两个变量的值,
把x,y传给swap,swap使用&a,&b接受。引用就相当于形参通过别名的方式操作实参。
这篇关于值传递和址传递的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!