c语言3种方式实现参数传递

本文详细解析了计算机编程中三种参数传递方式:值传递、地址传递及引用传递的特点与区别,并通过实例说明每种传递方式的工作原理。

学习计算机已经两年了,参数传递已经成功恶心了我两年,今天在写二叉树遍历的时候成功对此忍无可忍。本文是在阅读https://blog.youkuaiyun.com/u013097971/article/details/77983810后写下的,算是对参数传递的总结,请移步原创。

一、值传递

值传递有两种,一种是传递参数的值,一种是传递参数的地址

 

图二中传递的是a,b的地址,在swap函数中,将a,b分别赋值给x,y。虽然说x,y进行了值交换,但是a,b并没有进行交换,所以主函数输出时并未交换

 

二、地址传递

在该次中传递的是a,b的地址,在swap中,x,y分别表示指向a,b地址的地址,即*x,*y表示a,b的地址,是真正的实现了地址交换,所以主函数输出时实现了交换。

 

三、引用传递

这是一种最难以理解的传递方式,我去吃点饭,稍后再继续

 

 

这顿饭吃的稍微有点长哈,继续说引用传递,引用传递实质是对实参本身进行了直接操作,在改函数中,可以理解为x即a,y即b。

一般函数在调用结束后就会释放所有的内存,在这个swap函数里,是直接对a,b操作,没有进行内存申请,提高了运行效率。

 

转载于:https://www.cnblogs.com/tao7/p/9467340.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值