通过引用转移结构阵列 C++
所以我还是新人 programming/C++, 并且仍然试图将头部缠绕在指针周围,通过链接和其他一切。 我尝试理解的程序现在应该通过另一个函数的结构数组。 我让它工作,只需在那里传递数组。 看来,一切都很好。 但是,我担心我认为我通过价值传达的东西,我理解在链接上传输结构更好,以便每次都没有制作结构的副本......
在任何情况下,这是我所做的主要例子:
据我所知,它有效,因为阵列已经指向指针,对吧? 但是我如何设置它,我仍然发送一个结构的副本和所有函数的所有函数 pass//? 我试图通过引用来传达它,但似乎他不想在我尝试时工作。
在任何情况下,这是我所做的主要例子:
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//? 我试图通过引用来传达它,但似乎他不想在我尝试时工作。
没有找到相关结果
已邀请:
5 个回复
小姐请别说爱
赞同来自:
实际上,我们通过引用传递一个数组。
</goldenhelmet,></array>
冰洋
赞同来自:
void pass /GoldenHelmet ofMambrino[], int size/
事实上,它非常令人困惑。 由于您没有传递数组,因此传递指针。 但这并不是一样的,不要混淆。 此奇怪性仅适用于该功能的参数。 以上与此完全相同:
实际上,除非它是另一个对象的子对象,否则不可能将数组传输。 您可以将它们传递给链接,虽然您需要启用大小,但您可以使用模板执行以下操作:
</int>
风见雨下
赞同来自:
关于阵列的地址,这就是你通过的。
知食
赞同来自:
一
, 他会以计价为例。
下面是说明最后一段的代码的片段:
董宝中
赞同来自:
int x[ ]
x 实际上指针 const, 表示阵列的开头。当您将其传递到函数时,您将发送一个是阵列开头的内存地址。这就是为什么当您对函数进行更改时,您实际上在调用者部分中实际上更改了变量。这实际上是链接上的模拟呼叫,而不是对链接上的呼叫。但效果与调用链接时的效果相同,因为您使用内存单元格。出于这个原因,当您发送一个结构数组时,可以传达结构阵列的实际地址。这就是为什么改变此内容时,您实际上更改了您的结构。
要使用呼叫呼叫,您需要做的一件事是定义原型功能,如下所示。
当函数被调用时,同样的事情发生在其他。
总结: