用于传递参数的 Java 与 C++

标签 java c++ argument-passing

关于 Java 和 C++ 如何传递参数,我开始有点混淆。

这是正确的吗:

Java 使用按值调用传递,该值实际上是引用(不是实际数据/对象)。所以复制了地址?

默认情况下,C++ 按值传递,但值不是引用,而是实际数据。如果你想通过引用模拟真实的调用使用&或者一个指针?

总而言之,Java 会复制参数,但它是引用的拷贝。 C++ 通常会复制而不是复制实际底层数据的引用(除非您使用 & 或指针)?

最佳答案

C++(03) 总是 制作拷贝,除非您通过引用传递。 (理论上......在实践中,复制省略可以发生,但这与问题无关)

如果你通过指针传递,你仍然制作一个拷贝(当然,它是指针的拷贝,但仍然是一个拷贝)。

关于用于传递参数的 Java 与 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11122955/

相关文章:

c++ - 是否可以在 RAD Studio 10 c++ 中设置 Window (x, y) Position?

bash - 编写嵌套 shell 脚本 - 无法传递参数

Java - 计算错误

c++ - 如何避免在 CMake 安装步骤中删除 RPATH?

java - 在后端传递浏览器选项卡信息?

c++ - 包含值地址的字符串 -> 该值的指针

c - 如何编写一个 vfprintf 包装器,为格式说明符添加前缀并将新格式说明符传递给 C89 中的 vfprintf?

C++ - 具有任意数量参数的函数指针

shell+java错误

java - 使用 AngularJS 将 URL 中的 RequestParams 传递到 Spring MVC 后端