1. 程式人生 > >指標作為函式引數(處理陣列的四種方式)

指標作為函式引數(處理陣列的四種方式)

//陣列名傳遞給指標子引數  
#include <stdio.h>
#define N 3
float average(float * g); 
int main()
{
	float grade[N]={60,75,80};	
	printf("學生的平均成績是:%.3f\n",average(grade)); 
	
}
float average(float * g)
{
	float *a=g; //這句話很重要 
	float ave,sum=0;  
	for(;g<a+N;g++) //原來a的地方用g代替會出錯:因為隨g自增,條件恆滿足,程式陷入死迴圈 
		sum+=*g;	
	return ave=sum/N;
		
}

-------------------------------------------------------------------------------------------------------------------------------------------------------

//陣列名傳遞給陣列名
#include <stdio.h>
#define N 3
float average(float grade[N]); 
int main()
{
	float grade[N]={60,75,80};	
	printf("學生的平均成績是:%.3f\n",average(grade)); 
	
}
float average(float grade[N])
{
	int i; //
	float ave,sum=0;  
	for(i=0;i<N;i++) //
		sum+=grade[i];	
	return ave=sum/N;
		
}

-------------------------------------------------------------------------------------------------------------------------------------------------------

//指標傳遞給陣列名
#include <stdio.h>
#define N 3
float average(float grade[N]); 
int main()
{
	float grade[N]={60,75,80};	
	float * a=grade; 
	printf("學生的平均成績是:%.3f\n",average(a)); 
	
}
float average(float grade[N])
{
	int i; //
	float ave,sum=0;  
	for(i=0;i<N;i++) //
		sum+=grade[i];
	return ave=sum/N;
		
}

-------------------------------------------------------------------------------------------------------------------------------------------------------
//指標傳遞給指標子引數  
#include <stdio.h>
#define N 3
float average(float * g); 
int main()
{
	float grade[N]={60,75,80};	
	float * a=grade; 
	printf("學生的平均成績是:%.3f\n",average(a)); 
	
}
float average(float * g)
{
	float *a=g; //
	float ave,sum=0;  
	for(;g<a+N;g++) //
		sum+=*g;	
	return ave=sum/N;
		
}

//指標傳遞給指標子引數  
#include <stdio.h>
#define N 3
float average(float * g); 
int main()
{
float grade[N]={60,75,80};
float * a=grade; 
printf("學生的平均成績是:%.3f\n",average(a)); 

}
float average(float * g)
{
float *a=g; //這句話很重要 
float ave,sum=0;  
for(;g<a+N;g++) //原來a的地方用g代替會出錯:因為隨g自增,條件恆滿足,程式陷入死迴圈 
sum+=*g;
return ave=sum/N;

}