打印

关于参数传递的来改变变量值的疑惑

[复制链接]
1093|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fmxssh|  楼主 | 2016-3-17 14:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
将一个值类型(a)变量作为参数传递给一个函数,这个函数修改了变量,然而,当这个函数执行完返回时,变量(a)却没有被修改.那么,有没有什么方法,在使用参数传递的情况下(即这个函数里面没有用到全局变量),当这个函数返回时,保证这个变量(a)已经被函数修改了?因为要修改多个值,所以也无法用return来返回被函数修改过的变量。请高手支招!

相关帖子

沙发
wuhenyouyu| | 2016-3-18 09:08 | 只看该作者
把要修改的变量放到结构体里,传个结构体指针就就完了。

使用特权

评论回复
板凳
sjnh| | 2016-3-19 08:18 | 只看该作者
参数是传递了一份副本,在函数里操作已经不是原来的数据;要想改变传指针就可以;
建议参考 形参与实参

使用特权

评论回复
地板
Simon21ic| | 2016-3-19 12:51 | 只看该作者
熟悉汇编的话,看一下函数调用的汇编代码就全知道了

使用特权

评论回复
5
marmotw| | 2016-3-19 21:54 | 只看该作者
C语言参数只有一种形式: 传值,即传递的是数值本身,而不是变量。
C++语言参数传递有两种形式: 传值 与 传引用,传值语义与C是一样的。
传引用相当于传递的是变量,或者说给变量起了一个别名。


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

36

帖子

3

粉丝