是
void myFunction( int (&arg)[4] );
和
void myfunction(int arg[4]);
不同?他们有什么不同?首先做什么以及如何称呼它?
答案 0 :(得分:7)
他们是不同的。第一个引用4个int的数组作为其参数。第二个采用指向未知数量的int的数组的第一个元素作为其参数。
int array1[4] = {0};
int array2[20] = {0};
void myFunction1( int (&arg)[4] );
void myFunction2( int arg[4] );
myFunction1( array1 ); // ok
myFunction1( array2 ); // error, size of argument array is not 4
myFunction2( array1 ); // ok
myFunction2( array2 ); // ok