结构值存储

Struct value storage

我正在将一个最初用 C++ 编写的程序转换为 Java,因为我对 C++ 的经验很少,并且遇到了一些问题。

struct indx{ int i,j; };
void increment(indx place) { 

    place.i+=5;
    place.j+=5;

}

当 C++ 通过方法传递结构并进行修改时,它们是否保留在其余代码中?在 Java 术语中,在方法中修改结构是否与修改克隆相同?

您正在按值传递 place,这意味着 increment 正在对您的结构的副本而不是原始结构进行操作。更改为按引用传递,如下所示:

void increment(indx& place) {
...
}

该函数随后将在原始结构上运行,任何修改都将返回给调用者。