一个小概念数组的
[code=C/C++]#include<stdio.h>
int array_sum(int array, int n);
void main()
{
int a[10],i;
printf("请输入10个元素:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("输入的元素是:\n");
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("输入元素的和是:\n");
printf("%d",array_sum(a,10));
}
int array_sum(int array, int n)
{
int sum=0, *p;
int *array_end=array+n;
for(p=array;p<array_end;p++)
sum+=*p;
return(sum);
}[/code为什么一定需要int array_sum(int array[], int n)一定得加一个[]呢?求解?
不加的时候就会报错。
我想都是数组啊,传递的数组首地址,那为什么既不能是 array呢? array和 array[]有什么区别呢?
[解决办法]
int array_sum(int array[], int n)
为什么加[]
表示是一个数组类型的形参啊 传的是数组
不加的话,int array,表示传整形值。
[解决办法]
对是传的数组首地址 但是形参你写成 int array 就不表示数组首地址;类型你必须写正确。必须写成int array[],楼主可以理解int []是一个类型。
[解决办法]
楼上说的是,不加[],函数的参数就是int型了,自然报错
[解决办法]
我想都是数组啊,传递的数组首地址,那为什么既不能是 array呢? array和 array[]有什么区别呢?
一个是整形变量 一个是整形数组
其实数组传参传的是个指针 写成 int *array就行了
照样可以使用array[N]