函数传址调用的基本解析

在c语言中函数发挥着简便运算以及增加代码可读性的作用,而自定义函数更是使代码的运算更加灵活,一般的传值调用无法直接更改参数的数值。就如该函数中如此,结果没有变化。

 调试之后我们发现,在程序结束的时候a和b的值并不会因为x y值的变化而变化,因而即便在函数中x y交换了值,但是依然不会对a b造成实际影响。

同时还要提到一点,调试!!!!!真的超级好用,只要你有足够耐心跟着程序一条条分析,自己找出问题的成就感真的会远比别人看出错误的感觉来得直接和强烈,同时关于这个知识点自己影响也会更加深刻。

在函数中a b为实际参数而x y为形式参数,即为实际参数的一份临时拷贝。可以理解为直接传值的话二者并没有什么直接的联系。

由于不会用return返回两个数,这时候我们就要用到传址来运行代码,因为根据一个数的指针我们可以直接定位到改数值并进行修改。

 传参的时候用&(取地址符号)取a b的地址传输到函数之中,在函数之中进行接收,由于传输过来的是地址,而指针变量的数据类型为int*所以用int*进行定义。之后交换之时使用*(解引用操作符)使我们可以顺着地址找到原来的a b进行修改。之后我们在函数中对其的修改就能在主函数中直接体现。

 在函数中一定要带上*不然实际上的操作并不会影响到实际数值

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LinAlpaca

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值