大家在向函数中传递数组的时候,一般有两种方式形参模式。
1:传递数组:例如函数定义为:void fun(int array[100])
则可以这样传递实参:int array[100]={0};
fun(array);
2:传递指向数组的指针:例如函数定义为:void fun(int *array)
也可以这样传递实参:int array[100]={0};
fun(array);
其实这两种形参是等价的,是一样的。都相当于传递了指针。
原因:int array[100]={0};
array++; //是会报错的。
而将其传递给函数void fun(int array[100])后:
fun(array);
在fun函数的内部,array++;是合法的。
如:
void fun(int array[100])
{
array++; //这样是合法的。
}
int main()
{
int array[100]={0};
//array++; 这样是非法的。
fun(array);
}