c语言,关于形参实参单向值传递!

c语言,关于形参实参单向值传递!如图,我的困惑是这也是自定义函数利用形参改变实参啊,为什么这就可以,而如果函数中是传的指针变量就不可以?不是说的c语言中形参变量和实参变量... c语言,关于形参实参单向值传递!如图,我的困惑是这也是自定义函数利用形参改变实参啊,为什么这就可以,而如果函数中是传的指针变量就不可以?不是说的c语言中形参变量和实参变量之间数据传递是单向值传递吗?
展开
 我来答
bad5tone
2017-05-31 · TA获得超过437个赞
知道小有建树答主
回答量:215
采纳率:0%
帮助的人:149万
展开全部

分两种情况给你对比一下

  1. 函数形参用普通变量,当函数被调用的时候,实参的值被赋值给了形参,函数被调用的时候开辟了内存空间给形参,也就是数据被复制了,然后函数开始处理形参的数据,这个时候和实参的数据是没有任何关系了。当函数结束的时候形参的内存空间是要被释放,或者说删除的,所以对实参啥也没干,只是拿了实参的数据复制了一份,然后对复制的那一份算的很起劲,结果最后删除了,啥也没干。

  2. 函数形参用指针,当函数被调用的时候,实参指针,也就是把地址复制了一份给形参,但是函数中我们用取内容符号'*'对形参指针所指的内容,同时也是实参指针所指的同一份内容进行处理,函数结束的时候形参指针的值是被释放了,可是形参指针,同时也是实参指针所指的内容还在。

    感觉讲的蛮清楚了,不懂再追问。

追问
谢谢你,我好像是懂了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式