这段代码为什么在数组语法中需要加上'&'符号?
当我这样声明它时:
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];
}
但是为什么我不能像传递数组一样返回数组呢?