结构值存储
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) {
...
}
该函数随后将在原始结构上运行,任何修改都将返回给调用者。
我正在将一个最初用 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) {
...
}
该函数随后将在原始结构上运行,任何修改都将返回给调用者。