Если вы используете недавний компилятор, такой как недавние gcc и visual studio (которые предоставляют контейнеры C ++ 11), вы можете использовать вместо необработанного массива std :: array и прояснить ситуацию при чтении.
Вот ответ Армена Цируняна с std :: array:
void f( std::array<int,10> & arr );
Вы называете это так
std::array<int,10> arr;
f(arr);
Вы можете шаблонизировать свою функцию
template<class T, int N>
void f( std::array<T,N> & arr );