The answer is the same as why shouldn't you use int*&
when passing 1D arrays represented via a pointer. You want to use the reference whenever you want to modify the pointer passed to your function. In your case, you are just accessing the elements that are pointed by, no need to modify the pointer itself. So, there is no real need for a reference, although it is not technically incorrect to use a reference.
Example of when it may make sense to use a reference:
f(int*& p)
{
// do something with the memory pointed by p
for(int i = 0; i < 10; ++i)
std::cout << ++p[i]; // ok, modify the memory location p+i points to
delete[] p; // deallocation
p = nullptr; // nullify p, if you want to modify what you passed, you need the reference
}