这几个函数各不相同。1的参数是对3x4的二维int数组的引用,2的参数是 指向3x4的二维int数组的指针,而3的参数是对长度为4的一维数组的指针, 因为函数形参出现T[]类型的时候会作为T*来处理。见C++ 2003 8.3.5 3. ... After determining the type of each parameter, any parameter of type “array of T” or “function returning T” is adjusted to be “pointer to T” or “pointer to function returning T,” respectively. 比如 void func1(int (&array)[3][4]) {} void func2(int (*array)[3][4]) {} void func3(int array[3][4]) {} int main() { int array[3][4]; func1(array); func2(&array); func3(array); int array2[2][4]; // func1(array2) or func2(&array2) wouldn't compile func3(array2); }