1. 程式人生 > 其它 >將函式中陣列用指標代替的問題

將函式中陣列用指標代替的問題

技術標籤:C語言c語言

將函式中函式宣告,函式解釋,函式使用部分用指標表示,即當形參,和實參都是陣列名的時候,怎麼用指標表示

如,用函式來求兩組學生的成績平均數

#include<stdio.h>
int main()
{
	float aver(float a[],int n);
	float a[5],b[10];
	int i;
	printf("請輸入第一組學生的成績:\n");
	for(i=0;i<5;i++)
	{
		scanf("%f",&a[i]);
	}
	printf("請輸入第二組學生的成績: \n"
); for(i=0;i<10;i++) { scanf("%f",&b[i]); } printf("第一組的平均分為=%.2f\n",aver(a,5)); printf("第二組的平均分為=%.2f\n",aver(b,10)); return 0; } float aver(float a[],int n) { float sum=0,pingjunshu; int i; for(i=0;i<n;i++) sum=sum+a[i]; pingjunshu=sum/n; return
(pingjunshu); }

然後,此時將形參,實參為陣列名的用指標變量表示
在這裡插入圖片描述

 #include<stdio.h>
int main()
{
	float aver(float *p,int n);//函式宣告部分。 
	float a[5],b[10],*q,*r;
	q=&a[0];//函式使用前關聯變數。 
	r=&b[0];
	int i;
	printf("請輸入第一組學生的成績:\n");
	for(i=0;i<5;i++)
	{
		scanf("%f",&a[i]);
	}
	printf("請輸入第二組學生的成績: \n"
); for(i=0;i<10;i++) { scanf("%f",&b[i]); } printf("第一組的平均分為=%.2f\n",aver(q,5));//函式使用部分,陣列名直接用指標名錶示,如q,r等,前提是需要在用到的時候關聯變數。 printf("第二組的平均分為=%.2f\n",aver(r,10)); return 0; } float aver(float *p,int n)//函式宣告部分a[],用*p表示 { float sum=0,pingjunshu; int i; for(i=0;i<n;i++) sum=sum+*(p+i);//函式解釋部分a[i]用*(p+i)表示 pingjunshu=sum/n; return(pingjunshu); }

在這裡插入圖片描述