我知道在 C 中,您可以按值传递(或返回)结构,但不能按值传递数组。当结构包含数组时会发生什么?当结构按值传递(或返回)时,数组(在结构内)是否会被复制?我在 ideone.com 上运行了一个示例,它可以工作,但我想知道标准中的哪个位置(是的,我已经看过了)。
http://open-std.org/JTC1/SC22/WG14/www/docs/n1256.pdf
typedef struct
{
float aValue;
int anArray[5];
} myStruct;
myStruct addValueToArray(myStruct in)
{
myStruct out = in;
int i;
for (i = 0; i < 5; i++)
{
out.anArray[i] = in.anArray[i] + in.aValue;
}
return out;
}