所以我對編程/ C++還是比較陌生,仍然試圖圍繞着指針並通過引用和所有事物傳遞。我試圖找出一個程序現在需要將一個結構數組傳遞給另一個函數。我只是直接將數組傳遞給了它。它似乎工作正常。然而,我所關心的是我相信我是通過價值傳遞它的,並且我明白最好通過引用來傳遞結構,所以你不會每次都複製一個結構體......在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()函數?我試圖通過引用來傳遞它,但它似乎並不想以我嘗試過的任何方式工作。
數組不是指針。重複這個過程直到你暈倒,然後回到這個網站去閱讀當時發佈的答案。 – 2012-01-10 04:13:38
@NiklasBaumstark不,答案將在C++ :) – dasblinkenlight 2012-01-10 04:14:07
@Kerrek SB謝謝澄清。我正在閱讀[這篇文章](http://forums.devshed.com/c-programming-42/how-to-passing-arrays-of-structures-61159.html),它似乎暗示着數組是指針。我想我需要繼續關注它。無論如何,現在要閱讀回覆,感謝大家的幫助。 – Nate 2012-01-10 04:20:01