数组名作为函数的参数 与数组作为函数参数的区别

数组元素作为函数的实参时,像形参变量传递的是数组元素的值,而用数组名作为函数的实参时,向形参(数组名或指针变量)传递的是数组首元素地址.参考如下代码可以更好的理解.

1数组名作为函数的参数

//1有一个一维数组score,内放10个学生,求平均成绩
#include
int main()
{
	float average(float array[10]);
	float score[10],aver;
	int i;
	for (i = 0; i < 10; i++)
	{
		scanf("%f", &score[i]);
	}
	printf("\n");
	aver = average(score);
	printf("average score is %5.2f\n", aver);
	return 0;
}
float average(float array[10])
{
	int i;
	float aver, sum = array[0];
	for (i = 1; i < 10; i++)
	{
		sum = sum + array[i];
	}
	aver = sum / 10;
	return aver;
}

 2数组作为函数参数

//输入十个数求出其中最大的元素 和该元素是第几个数
int main()
{
	int max(int x, int y);
	int i, n,m,num[10];
	printf("enter 10 integer numbers\n");
	for (i = 0; i < 10; i++)
	{
		scanf("%d", &num[i]);
	}
	for (i = 0,m=num[0],n=0; i < 10; i++)
	{
		if (max(m, num[i]) > m)
		{
			m = max(m, num[i]);
			n = i;
		}
	}
	printf("The largest number is %d\nit is the %dth number.\n", m, n + 1);

}
int max(int x, int y)
{
	return x > y ? x : y;
}

你可能感兴趣的:(C语言学习记录,c语言,开发语言,后端)