It’s a syntax for array references – you need to use
(&array) to clarify to the compiler that you want a reference to an array, rather than the (invalid) array of references
int & array;.
EDIT: Some clarification.
void foo(int * x); void foo(int x); void foo(int x);
These three are different ways of declaring the same function. They’re all treated as taking an
int * parameter, you can pass any size array to them.
void foo(int (&x));
This only accepts arrays of 100 integers. You can safely use
void foo(int & x); // error
This is parsed as an “array of references” – which isn’t legal.