爲什麼此代碼在數組語法中需要'&'?C++數組語法(函數返回數組)
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];
}
通過它,但我爲什麼不能返回數組可以通過相同的方式嗎?
@john我猜所有值得用鹽的C++書籍都應該提及數組值的語義。 – Angew 2013-05-07 07:42:34
[爲什麼C++不支持函數返回數組?]可能的重複(http://stackoverflow.com/questions/5157439/why-doesnt-c-support-functions-returning-arrays) – 2013-05-07 07:46:49
我試圖編輯問題以表明它與那個 – spiritwolfform 2013-05-07 08:03:21