为什么在数组做参数那一节中的题目里
replaceMax(arr1, arr2[0] ); //将数组arr1和数组arr2的第一个元素传入函数中
第一个arr1不用加[0]呢?
准确地说:数组用作右值时,会自动转换成指向数组首元素的指针。
故 arr1 实际上是将 arr1[0] 的地址(&arr1[0])传入函数,而 arr2[0] 就是将arr2数组的第一个元素(就是一个int)传入函数。
而且,声明在函数参数列表中的数组,会被视为指向数组元素类型的指针,也就是说:
void replaceMax(int arr[], int value); // 相当于 void replaceMax(int *arr, int value); // 和你上面调用函数时传入参数类型相匹配
传参时,默认为数组的第一个元素, arr1=arr1[0]