将数组作为函数参数时,一定注意信息是否完整,例如:
想利用自定义函数计算数组的元素和:
int sum(int a[]){
int ans = 0;
for(int i = 0;i < sizeof(a); i++)
ans+=a[i];
return ans;
}
这个函数时错误的,因为传递参数时只传递了数组的首地址,而未告知函数数组元素个数,所提sizeof()无法计算数组大小。
注意:把数组作为参数传递给函数时,实际上只有数组的首地址作为指针传递给了函数:int sum(int a[ ])相当于int sum(int *a)
正确的做法应再加一个参数:
int sum(int *a,int n){
int ans = 0;
for(int i = 0;i <n; i++)
ans+=a[i];
return ans;
}