在函数中利用指针修改实参的值

本文介绍了在C语言中,如何通过函数修改主函数的值,重点讲解了使用函数和指针进行数值调换的技巧,强调了传递指针值并进行解引用操作的重要性。
摘要由CSDN通过智能技术生成

在经过函数的学习后,我们了解到函数在实现功能时操作的数据其实是主函数数据的副本,也被称为形参,所以在函数中进行操作并不会修改主函数的值。但是如果想要通过函数来修改主函数的值又要怎么做呢?举个例子,如何用函数使主函数变量的值调换?

对于该题目的分析,首先要在函数中构建中间变量,通过中间变量进行数值调换。如果没有注意到函数修改形参的特点,就有可能出现以下错误。

可以看出这样做并没有修改主函数中值。

        为了实现上述功能就必须要使用到C语言中的指针,指针也就是地址,某一变量的指针也就是某一变量的地址。通过对C语言的学习,我们了解到变量在定义时就被赋予了一个空间用于存放数据,这个空间也就是该变量的地址。对指针有了初步的了解后,我们在定义函数时就可以将变量的地址作为参数,通过地址找到这个变量,对其修改。

在这里我们明明用了指针,可还是没有达到我们想要的结果。仔细观察代码,我们发现函数swap2确实进行了数值调换,但仅仅只是调换了地址,实际上并没有对地址的内容产生作用。打个比方,一公司有两个仓库a,b,现需把a中的甲货物与b中的乙货物交换,二上述操作相当于把a,b仓库门牌号交换,但其内部货物甲乙并没有发生改变

上述情况又因为*tmp指针未初始化报错。通过上述几种典型错误后,可以总结出:要想指针发挥其作用,必须要传送指针的值,还要对指针进行解引用操作。这时再要完成上面的目的就简单多了。我们可以将主函数实参的地址传给函数,函数通过实参的地址间接访问实参,然后对实参进行修改。我们首先创建一个中间变量,再对主函数变量的指针进行解引用,达到最总目的。代码如下:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值