They are different. The first takes a reference to an array of 4 ints as an argument. The second takes a pointer to the first element of an array of an unknown number int as an argument.
int array1[4] = {0}; int array2[20] = {0}; void myFunction1( int (&arg)[4] ); void myFunction2( int arg[4] ); myFunction1( array1 );
source share