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]。
相关文章推荐
- 关于指针的一些事情
- Linux C函数参考手册(PDF版)
- ruby 数组使用教程
- Ruby中的数组和散列表的使用详解
- C#实现AddRange为数组添加多个元素的方法
- C#比较二个数组并找出相同或不同元素的方法
- C# partial关键字说明
- C#动态调整数组大小的方法
- Lua教程(十七):C API简介
- 详解Lua中的数组概念知识
- 简单谈谈lua和c的交互
- Perl中的列表和数组学习笔记
- 探索PowerShell (八) 数组、哈希表(附:复制粘贴技巧)
- C#中数组初始化与数组元素复制的方法
- C#交错数组用法实例
- Linux Shell 数组建立及使用技巧
- PowerShell数组的一些操作技巧
- C#通过yield实现数组全排列的方法
- C#不重复输出一个数组中所有元素的方法