所以我对编程/ 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