在函数声明中,如果有下面的写法: int func(int a[10]) { .... } 其中int a[10]的声明编译器自动处理为int *a 也就是说,在函数的形参列表里指定数组的成员个数是没有意义的,所以,你传入的实参究竟是比10多还是比10少对于调用函数而言都是合法的。 另外,你在函数的形参里指定数组的大小,编译器实际上并不给这个数组分配实际的空间,也就是说,形参里即使你定义成数组,实际上也是当指针来用,所以一下三种方式是等价的: int fun(int a[]) int fun(int *a) int fun(int a[10)
转自:http://fqj2008.good.blog.163.com/blog/static/6535584020117141296355/