为什么这段代码需要数组语法中的“&”?
int (&returnArray(int (&arr)[42]))[42]
{
return arr;
}
当我这样声明时
int (returnArray(int arr[42]))[42]
{
return arr;
}
我明白了
error C2090: function returns array
但这不是在第一个示例中返回的数组吗?它是对数组的某种引用吗?
我知道我也可以将一个数组传递给一个函数,它会衰减到一个指针
int returnInt(int arr[42])
{
return arr[0];
}
或通过引用传递
int returnInt(int (&arr)[42])
{
return arr[0];
}
但是为什么我不能以与传递相同的方式返回数组呢?