标签: java c++
在c ++中我们使用&代表传递参考。由于对象总是通过引用传递,因此您不需要使用此&?或者没关系?
java和c ++在传递值和引用方面有何不同。我认为java中的所有内容都是通过引用传递的,但它是通过值传递的?为什么是这样?那么,当对象通过引用传递时,原语是按值传递的吗?
答案 0 :(得分:8)
清除两件事:
&
答案 1 :(得分:0)
我之前在C ++参数上写了一个详细的答案,传递语义,其中包括关于Java语义如何不同的最后一节。你可以阅读它here
基本上,将数组放在一边(更多关于数组here),因为那些是不同的野兽。在C ++中,如果参数类型不包含&,则按值传递(复制)。如果类型包含*,那么它是一个指针,它是指向被复制的指针,但是会执行一个副本。
*
在Java中,对于引用类型,您从不使用实际对象,而是引用它(使用C / C ++方言指针)。所有参数都按值传递,这意味着将复制引用(该函数将无法修改调用者的引用),但可以通过复制的引用修改引用的对象。