C语言 形参数组传递问题

来源:百度知道 编辑:UC知道 时间:2024/06/19 19:06:15
一般来说数组名作为实参,传递给形参的是数组中第一个元素的地址。
但现在我想把数组中第3个元素的地址作为实参传递给形参,以便于某些特地的运算。
比如:定义a[5]输入6个数,编写一个求平均数的函数被主函数调用,现在我想计算从第三个数到第6个数的平均数,应怎样实现参数传递?

/*例如下面*/
void main()
{
char a[6] = {0};

func(&a[2]);/*传递第三个元素的地址*/
}

a+2 即可:

f(a+2, 4, ...)

a+2 参数首地址,这里是第3个数字。
4 数据的个数,第3到6个共4个数据
... 其他参数

float Average(const float *S, int n)
{
float sum = 0.0f;
float *p = S;
for (int i = 0; i < n; i++, p++)
sum+=*p;
sum/=n;
return sum;
}

int a[6] = {0,1,2,3,4,5};
Average(&a[2], 4);

假设定义的数组为整数数组。首先求平均数的函数有一个整形指针参数作为输入,然后在主函数调用求平均数函数的时候,该形参的值以a+2作为输入就可以了。(a+2为指向第三个数的整形指针指针)