在c++和java中,通过引用传递和通过值传递

pass by reference and pass by value in c++ and java

本文关键字:值传 引用 c++ java      更新时间:2023-10-16

可能的重复:
什么';通过引用传递和通过值传递之间的区别是什么
Java和C++按值传递和按引用传递

Java是"通过值传递"还是"通过引用传递"?

那么c++和c呢?c++和c是"通过值传递"还是"通过引用传递"?

"按值传递"answers"按引用传递"之间有什么区别?

Java是按值传递的,但您传递的值可能是引用。

在C++中,您可以选择是通过值传递还是通过引用传递。在C中,您总是通过值传递,而不存在引用这样的东西;你必须传递一个指针才能做类似的事情。

如果按值传递,函数将获得所传递变量的副本。如果更改副本,则原始值保持不变(不过,如果传递的值本身是引用,则可以更改引用的对象)。

如果通过引用传递,函数将获得传递的实际变量。如果函数更改了该变量,那么实际上就是在更改传递给函数的变量。

Java总是"按值传递"。

C++允许通过引用传递。C中的所有内容都通过值传递。

通过引用函数传递变量时,函数可以更改调用方中变量的值。传递值时,函数将获得变量的副本。

Java对于基本类型(int,double)是按值传递的,对于从Object继承的任何类都是按引用传递的。

C++可以随心所欲地通过。

pass-by-value生成参数的副本,因此在函数中所做的任何更改都只对该函数内部产生影响。

pass-by-reference不会复制,因此在子函数中对该参数所做的任何更改都会影响该函数之外的值。