Ответ 1
Это определение функции, которая возвращает указатель на массив из 10 целых чисел.
Помните, что возвращаемое значение является указателем, а не фактическим массивом. Массивы не могут быть возвращены из функций. По пункту 8.3.5/8 стандарта:
Функции не должны иметь тип возвращаемого типа массива или функции, хотя у них может быть тип возвращаемого типа указателя типа или ссылка на такие вещи
Вот простой пример того, как вы его используете:
int arr[10]; // an array of 10 int
int (*ptr)[10]; // pointer to an array of 10 int
int (*function())[10] // function returning a pointer to an array of 10 int
{
return ptr;
}
int main()
{
int (*p)[10] = function(); // assign to the pointer
}
Вы можете использовать это везде, где обычно используется указатель. Но обратите внимание, что есть лучшие альтернативы, чем указатели, например std::shared_ptr<std::array<T, N>>
или std::shared_ptr<std::vector<T>>
.