我已经学习Java几个月了,现在开始学习C。
我有点困惑,我的印象是,通过引用传递对象和传递指向该对象的指针是一回事:我认为不同之处在于,在Java中,所有对象的传递都是通过指针自动完成的,而在C中,人们必须在这里和那里实际散布一些星号和和号。最近,在谈话中,我确信这是有区别的!
通过引用传递和传递指针有什么不同?
发布于 2009-03-01 22:23:23
差异是微妙的。在程序集级别,在这两种情况下,对象的地址都被传递给函数。然而,在指针的情况下,参数是一个独立的指针,可用于修改目标对象(*pch = 'x'),也可用于访问不同的对象(pch = "newstr")。在引用的情况下,参数会自动间接指向目标对象。
发布于 2009-03-01 22:25:34
我相信指针是一个包含引用的变量。使用&可以获得内存方向(引用),使用*可以访问内存方向的内容。我推荐The C programming Language这本书。
问候
发布于 2009-03-01 22:26:22
真正的pass-by-reference意味着您可以为引用赋一个新值,这个新值将在调用上下文中可见,就像在被调用的方法中一样。
在Java中,这是不可能的,因为object references are passed by value。
https://stackoverflow.com/questions/600651
复制相似问题