//这里有两个地方需要注意
//1.marble+N指向数组结尾处之后的下一个元素,如果让end指向最后一个元素的话,则
//应为sum(marble,marble+N-1);而且函数应该改为while(begin<=end),这种写法不整洁
//而且不容易被记住,容易导致编译错误。这让我想到,c++中的迭代器iterator设计的时
//候也是遵循的这个原则
//2.*和++具有相同的优先级,它们结合时是从右向左进行的,先进行++操作。
#include<stdio.h>
#include<stdlib.h>
#define N 5
int sum(int * begin,int * end){
int total=0;
while(begin<end){
total+=*begin++;
}
return total;
}
int main(){
int marble[N]={1,2,3,4,5};
printf("Sum is %d",sum(marble,marble+N));
system("pause");
return 0;
}
多设置一个存储位置
最新推荐文章于 2016-05-16 15:25:44 发布