c中,怎么把数组变成一个自定义函数的形参?还有,给一个数组做实参的例子吧。最后,看下我这个,,显示

c中,怎么把数组变成一个自定义函数的形参?还有,给一个数组做实参的例子吧。最后,看下我这个,,显示错在十八行,错误原因?应该怎么改?谢谢!... c中,怎么把数组变成一个自定义函数的形参?还有,给一个数组做实参的例子吧。最后,看下我这个,,显示错在十八行,错误原因?应该怎么改?谢谢! 展开
 我来答
CodeBlove
2015-01-22 · TA获得超过3364个赞
知道小有建树答主
回答量:936
采纳率:79%
帮助的人:242万
展开全部
你是问如何将数组传递给函数吧!

除了引用,变量传递都涉及到数据复制,也就是在函数内要接受实参时,需要一个容器保存传入的值,也就是形参的作用,进入函数后为形参在栈上分配内存空间,然后将外部变量的值保存到该空间,便于函数内处理,当函数退出时,释放该形参(变量)。

而传递数组时,为了防止复制大量的数据所造成的系统资源浪费(CPU时间和内存),C或C++采用指针传递,也即传递数组的地址。

由于地址对于某一个系统都是固定长度的,为了让函数知道数组中每个元素的数据长度,便于正确访问不同类型的数组,因此传入的地址必须具有类型。

针对你的题目中的问题,显然main中的数组a是个float类型一维数组,因此其地址类型为 float*。为了要正确实现传递,sum的形参应该定义同样类型的指针变量,所以sum应该如下定义:
float sum(int *p)

main中传递数组方法: x=sum(a);
sum函数中访问数组可以用指针也可以用数组形式,
比如
for (i=0;i<10;i++)
{
x=x+p[i];
}
也可以采用指针形式:

for (i=0;i<10;i++)
{
x=x+(*(p+1));
}
追问
那如果我想把一个数组当成函数的参数呢,就像我需要一个,输入一个数组,得出一个结果的高数应该怎么弄?
追答
上面说的就是“数组当成函数的参数", 即形参。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式