Yes, it means the same thing, but it doesn't (and never did) really mean what it looked like it should mean.
The parameters are really pointers. By inference, there should be 5 elements in the arrays that they point to, but that isn't going to be guaranteed. In particular, given:
extern int add(int a[5], int b[5]);
int x[4];
int y[6];
add(x, y);
This is not going to cause the compiler to throw warnings.
With C99, you could let the optimizer assume that there will be at least 5 entries using the (weird) notation:
int add(int a[static 5], int b[static 5]) { ... }
Even this doesn't necessarily cause warnings at the call site; it is information to the compiler (though whether it uses it or not is up to the compiler).