在c语言中怎么将数组直接作为函数的参数 比如 int f(int a[10]) 在调用函数时会显示

在c语言中怎么将数组直接作为函数的参数
比如 int f(int a[10]) 在调用函数时会显示int类型与int*类型不匹配 是怎么回事 指针还没学请简单点说明

要把数组作为函数的参数,在函数定义的时候,就要在参数列表设置指针,因为数组名就是数组的头指针,在调用时直接把数组名作为函数的参数就好了
比如
int fun(int *a)
{
//...
}
int main()
{
int a[10];
int result=fun(a);
return 0;
}
这样就好了
通常为了在函数中确保访问数组不越界,在参数列表还要假如数组的长度,方便函数访问数组
如下:
int fun(int *a,int length)
{
int i,sum=0;
for(i=0;i<length;i++)
{
//...对数组的每个元素进行访问
sum+=a[i];//把全部元素加起来
}
return sum;
}
int main()
{
int i,a[10];
for(i=0;i<10;i++)
scanf("%d",&a[i]);
int result=fun(a,10);
printf("总和为:%d\n",result);
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-12-24
首先你应该声明参数是int *
第2个回答  2015-12-23
int f(int []a){
}
int f(int *a){
}
相似回答