结构值存储

时间:2015-06-16 22:55:27

标签: java c++ clone

我正在将最初使用C ++的程序转换为Java,因为我对C ++没什么经验,并且遇到了一些问题。

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

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

}

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

1 个答案:

答案 0 :(得分:2)

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

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

该函数将在原始结构上运行,任何修改都将持续回调用者。