我已经阅读了很多关于参数传递的资料。但我仍然有几个小问题要问。我了解基本类型的工作原理,现在我只关心将对象作为参数传递。
事实:
- Java 中的一切(原语/对象)都是按值传递
- 在Java中当一个对象作为参数传递时,引用变量的值被复制并传递。因此,当函数退出时,对对象的任何更改都是可见的。
- 在 C++ 中,参数传递可以通过三种方式完成:按值调用、按指针调用和按引用调用。
- 当通过指针调用将对象指针作为参数传递时,复制并传递对象(指针)的地址。变化也会反射(reflect)出来。
我的猜测:
Java的传值方式和C++的类对象的指针调用效果一样吗? 我说得对吗?
最佳答案
你是对的,Java 对象引用的功能基本上与 C++ 指针相同,除了在 C++ 中你可以取消引用并实际覆盖指针指向的内存块。你不能用 Java 做到这一点。
所以 Java 对象引用就像 C++ 指针,但没有 *
运算符。 Java .
运算符仅用于成员访问,就像 C++ ->
运算符一样。
关于Java 传值和类对象的 C++ 指针调用效果一样吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22109223/