一个小概念数组的

EmbeddedLong 2012-02-21 09:40:17
[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[]有什么区别呢?
...全文
78 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
soulmate119 2012-02-23
  • 打赏
  • 举报
回复
楼主都说了是数组了 ,但是在函数申明中 如果函数的形参不是申明为数组或指针形式,怎么就能凭空说是数组了!
哈了 2012-02-23
  • 打赏
  • 举报
回复
IVERS0N 2012-02-21
  • 打赏
  • 举报
回复
我想都是数组啊,传递的数组首地址,那为什么既不能是 array呢? array和 array[]有什么区别呢?

一个是整形变量 一个是整形数组

其实数组传参传的是个指针 写成 int *array就行了

照样可以使用array[N]
jixiang1983 2012-02-21
  • 打赏
  • 举报
回复
楼上说的是,不加[],函数的参数就是int型了,自然报错
pengfoo 2012-02-21
  • 打赏
  • 举报
回复
对是传的数组首地址 但是形参你写成 int array 就不表示数组首地址;类型你必须写正确。必须写成int array[],楼主可以理解int []是一个类型。
pengfoo 2012-02-21
  • 打赏
  • 举报
回复
int array_sum(int array[], int n)
为什么加[]
表示是一个数组类型的形参啊 传的是数组
不加的话,int array,表示传整形值。
EmbeddedLong 2012-02-21
  • 打赏
  • 举报
回复
#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);
}
前面的代码没弄好 在发一次

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧