请问一下谁可以帮我解释一下c中的形参和实参的问题,为什么有的程序调用函数后主函数的值变了?而有的又没

谢谢!... 谢谢! 展开
 我来答
dfughgfgh
2011-06-21
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
说下的我理解:实参:就是你准备向函数中传递的真正参数,比如你在主函数中,想把a=5中的a传给子函数,这个a就是实参
形参:你的传递的变量要有人接收,有人要对吧,子函数就负责接收这个a=5,为了接收这个参数,子函数临时在栈中开辟出来一个空间用来存放它,这个空间只是临时的,子函数结束后,就会释放,所以说,你无论在子函数里,怎么改变传入的这个参数的值,但实参的值不变,为什么?原因很简单,就是因为这俩存储的位置不是在一个地方,数值一样,这就是经常说的“传值调用”;与之相对的还有一种传递方式,称为“传址调用”,顾名思义,就是你想传递a=5,直接把这个变量的地址传给子函数,这下在子函数中,对a的操作直接是对其存放位置的操作,所以会改变主函数中的值
总结:简单的说,传值调用,就是在Copy出来一个数值一样的参数,你在子函数中修改的只是真正实参的副本;传址调用中,都是指向同一个内存单元,修改会改变其值。不知道这么说你明白没有。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式