首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Java中通过引用传递和在C中传递指针有什么不同?

在Java中通过引用传递和在C中传递指针有什么不同?
EN

Stack Overflow用户
提问于 2009-03-01 22:16:40
回答 5查看 4.2K关注 0票数 15

我已经学习Java几个月了,现在开始学习C。

我有点困惑,我的印象是,通过引用传递对象和传递指向该对象的指针是一回事:我认为不同之处在于,在Java中,所有对象的传递都是通过指针自动完成的,而在C中,人们必须在这里和那里实际散布一些星号和和号。最近,在谈话中,我确信这是有区别的!

通过引用传递和传递指针有什么不同?

EN

回答 5

Stack Overflow用户

发布于 2009-03-01 22:23:23

差异是微妙的。在程序集级别,在这两种情况下,对象的地址都被传递给函数。然而,在指针的情况下,参数是一个独立的指针,可用于修改目标对象(*pch = 'x'),也可用于访问不同的对象(pch = "newstr")。在引用的情况下,参数会自动间接指向目标对象。

票数 3
EN

Stack Overflow用户

发布于 2009-03-01 22:25:34

我相信指针是一个包含引用的变量。使用&可以获得内存方向(引用),使用*可以访问内存方向的内容。我推荐The C programming Language这本书。

问候

票数 2
EN

Stack Overflow用户

发布于 2009-03-01 22:26:22

真正的pass-by-reference意味着您可以为引用赋一个新值,这个新值将在调用上下文中可见,就像在被调用的方法中一样。

在Java中,这是不可能的,因为object references are passed by value

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/600651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档