您的位置:首页 > 其它

C,数组指针,*(a+i)与*a+i;

2016-03-12 21:33 190 查看
#include "StdAfx.h"
#include <stdio.h>
#include <stdlib.h>
float avg(float *a){
float sum=0;
int i=0;
for(i=0;i<5;i++){
//sum+=*(a+i);
sum+=*a+i;  ////每次都是a[0]+i,,,,,
printf("sum=%f\n",sum);
}
return sum/5;
}
int main(){
float scores[5],average;
int i;
printf("input 5 numbers:");
for(i=0;i<5;i++){
////scanf("%d",&scores[i]);
scanf("%f",&scores[i]);
}
for(i=0;i<5;i++){
printf("%5.3f\n",scores[i]);
}
average=avg(scores);
printf("平均值是:%f\n",average);
system("pause");
return 0;
}
input 5 numbers:2 4 6 8 10

2.000

4.000

6.000

8.000

10.000

sum=2.000000

sum=5.000000

sum=9.000000

sum=14.000000

sum=20.000000

平均值是:4.000000

请按任意键继续. . .
#include "StdAfx.h"
#include <stdio.h>
#include <stdlib.h>
float avg(float *a){
float sum=0;
int i=0;
for(i=0;i<5;i++){
sum+=*(a+i);   ///////先后累加元素值
//sum+=*a+i;
printf("sum=%f\n",sum);
}
return sum/5;
}
int main(){
float scores[5],average;
int i;
printf("input 5 numbers:");
for(i=0;i<5;i++){
////scanf("%d",&scores[i]);
scanf("%f",&scores[i]);
}
for(i=0;i<5;i++){
printf("%5.3f\n",scores[i]);
}
average=avg(scores);
printf("平均值是:%f\n",average);
system("pause");
return 0;
}
input 5 numbers:2 4 6 8 10

2.000

4.000

6.000

8.000

10.000

sum=2.000000

sum=6.000000

sum=12.000000

sum=20.000000

sum=30.000000

平均值是:6.000000

请按任意键继续. . .

win7  64   vs2010 下 

4) *p++,由于++和*同优先级,结合方向自右而左,等价于*(p++)。

5) *(p++)与*(++p)作用不同。若p的初值为a,则*(p++)等价a[0],*(++p)等价a[1]。

6) (*p)++表示p所指向的元素值加1。

7) 如果p当前指向a数组中的第i个元素,则:
*(p--)相当于a[i--];
*(++p)相当于a[++i];
*(--p)相当于a[--i]。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C 指针 数组