Nie ma żadnej różnicy. I w przypadku pierwszej i drugiej funkcji argumentem będzie int*:
int f(int x[4]);
int m[4];
int* n;
int o[100];
int a = f(m); // działa
int b = f(n); // działa
int c = f(o); // działa
Różnica się pojawi kiedy będziesz przesyłał tablicę przez referencję albo przez wskaźnik:
constexpr int N = 10;
int funkcja(int (&t)[10]) // albo int (*t)[10]
{
...
}
Wtedy argumentem funkcji jest obiekt typu int[10].