因为函数形参为数组时,只是形式为数组,实际上会按照指针传参。
1、在C/C++中,允许使用数组做参数,比如
在某些时候也会写作
void func(int n[]);不管哪种方式,实际上在经过编译后,和定义
void func(int *n);都是相同的。
2、 将数组转为指针,可以提高效率,减少实际传递的值。比如如果传参数为int a[100], 要传实际数组的话,需要传递sizeof(int)*100 字节的值,而如果传指针,那么只需要传sizeof(int *)大小的数据就可以了,可以大大提高效率。
3、 转为传指针,可以将函数中的改动回传给主调函数。
综上,既然要转为指针,那么用int *n, int n[], int n[100], 其实也就没什么区别了,自然是合法的。
额
本回答被提问者和网友采纳