读书人

用指针计算数组的和,该怎么解决

发布时间: 2012-03-26 15:46:56 作者: rapoo

用指针计算数组的和
C语言书上的一道练习题目,要求,不能有临时计数器变量,不能有方括号[]
写出来结构总是不对,请大家帮我看一下哪里理解错了

C/C++ code
#include <stdio.h>int sum_array(const int *a,  int n);int main(int argc, char *argv[]){    int i[] = {1,3,5,7,9};    printf("Value: %d\n\n", sum_array(i, 5));//这里传i 或 &i 结果都是错的    return 0;}int sum_array(const int *a, int n){    int sum;        for(; a < n; ++a){        sum += *a;    }                    return sum;}


[解决办法]
for (; a < n; ++a)
a是指针,怎么和n比
[解决办法]
“a < n”这里不对,一个表示内存地址的指针变量直接跟一个小整数比较,比较的结果很可能不是你想要的。
其实你可以这么写:
C/C++ code
int sum_array(const int *begin, const int *end){    int sum;        for(; begin < end; ++begin){        sum += *begin;    }            return sum;} 

读书人网 >C++

热点推荐