让我先说。我知道标题怀疑我问了一个问题,这个问题在这里和互联网上多次被回答。我做了研究,但我找不到满意的答案。重新拨打电话与拨打电话
我的问题最终归结于此。为什么通过引用调用Java调用值和C++调用(何时使用指针)?
传递引用时需要考虑Java中的方法调用,而传递指针时要考虑使用C++中的方法调用。最后,在这两种情况下,我都可以对调用者进行更改。在这两种情况下,我都将对象的地址传递给函数。实际上,我正在复制,即在传递指针时,也通过C++中的值进行调用。
您可以简单地通过运行下面的代码验证情况:
#include <iostream>
void modify (int *i) {
int a = 5;
i = &a;
}
int main() {
int b;
int *i = &b;
std::cout << i << std::endl;
modify(i);
std::cout << i << std::endl;
return 0;
}
,它将打印相同的地址两次。
对我来说,仅仅通过引用属性来证明你可以用它做交换功能是不够的。我想知道通过引用引用通过引用调用的内容。
预先感谢您。
“为什么是Java调用按价值计算,C++调用由引用(使用指针时)?”因为设计语言的人以这种方式指定了他们。 – twalberg