编程论坛
注册
登录
编程论坛
→
C++教室
关于参数传递
mrlgy
发布于 2010-07-27 16:29, 697 次点击
为什么函数调用时实参与形参的传递必须采用值传递,即为什么不能通过形参改变实参?
在我看的书中无论是传递的是变量的值还是变量的地址,或者说引用,归根结底都是值传递。
8 回复
#2
pangding
2010-07-27 21:36
怎么会都是值传递?你传一个数组过去也是值传递吗?
#3
mrlgy
2010-07-27 22:04
回复 2楼 pangding
你传一个数组传递的是数组的地址,所以参数是地址,不是值了,即使值变了,但地址没变。
#4
pangding
2010-07-27 22:54
你说的那是哲学。毕竟计算机只能计算数值的东西,不管传什么都是值唄~~
值传递和引用传递是个概念。调用者不能访问被调用者的一切,所以被调用者要的东西,必需由调用者拷贝一份放到属于它的地方。
#5
zgxyz2008
2010-07-28 09:47
楼主的话很难懂,调用函数的时候,系统会分配新的内存,也就把实参的值拷贝到新的内存空间,计算机就是这样设计的,没有办法....没有必要钻牛角尖。
#6
ToBeOOP
2010-07-28 14:26
也可以按引用传递...按值传递需要拷贝一个副本...按引用传递则不会...
#7
东海一鱼
2010-07-28 15:45
同意楼上的,按值传递时需要拷贝变量副本,按引用则直接作用在变量本身。
但从‘宏’观上讲,传递的都是‘值’。
#8
tianxiao110
2010-07-28 20:44
楼主 , 太较真了, 程序里面很多是约定的东西,没必要,要不你自己编写个新语言你自己规定 这都是值传递
#9
mrlgy
2013-01-01 23:28
回复 楼主 mrlgy
只有值传递和引用传递,值传递是一个临时变量,引用是本身。
1