所以,我对编程/C ++仍然很陌生,仍在努力理解指针、按引用传递等方面的知识。现在,我正在尝试弄清楚一个程序,需要将结构数组传递给另一个函数。我已经通过直接将数组传递给那里来使它工作。看起来一切都正常。然而,我担心的是,我认为我是按值传递的,我知道最好是通过引用传递结构体,这样就不必每次都复制结构体了...
无论如何,这是我正在做的基本示例:
struct GoldenHelmet {
int foo;
string bar;
};
void pass (GoldenHelmet ofMambrino[], int size);
int main () {
GoldenHelmet ofMambrino[10];
int size = sizeof(ofMambrino) / sizeof(ofMambrino[0]);
ofMambrino[1].foo = 1;
pass(ofMambrino, size);
cout << ofMambrino[2].foo << endl;
return 0;
}
void pass (GoldenHelmet ofMambrino[], int size) {
ofMambrino[2].foo = 100;
ofMambrino[2].bar = "Blargh";
}
据我所知,它之所以有效是因为数组已经是指针,对吧?但是,按照我配置的方式,我仍然会将结构体和所有内容的副本传递给 pass() 函数吗?我尝试通过引用传递,但无论我如何尝试,它似乎都不想工作。