首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-03-26 
用指针计算数组的和C语言书上的一道练习题目,要求,不能有临时计数器变量,不能有方括号[]写出来结构总是不

用指针计算数组的和
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;} 

热点排行