指標作為函式引數(處理陣列的四種方式)
阿新 • • 發佈:2019-01-10
//陣列名傳遞給指標子引數 #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;
}