我知道在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;
}