读书人

请问指针和数组的一个例题

发布时间: 2012-09-18 16:21:42 作者: rapoo

请教指针和数组的一个例题
#include <stdio.h>
#define SIZE 10
int sump(int * start, int * end);
int main(void)
{
int marbles[SIZE] = {20,10,5,39,4,16,19,26,31,20};
long answer;

answer = sump(marbles, marbles + SIZE);
printf("The total number of marbles is %ld.\n", answer);

return 0;
}

int sump(int * start, int * end)
{
int total = 0;

while (start < end)
{
total += *start; /* add value to total */
start++; /* advance pointer to next element */
}

return total;
}

最后20这个数据我感觉不会计算在内吧,为什么计算机计算了呢,不大明白,end指的是哪里啊


[解决办法]
*marbles=20,*marbles+9=20,*marbles+10指在了20的后面, while (start < end)最后一次循环
start=*marbles+9所以20是计算在内的
[解决办法]

C/C++ code
#include <stdio.h>#define SIZE 10int sump(int * start, int * end);int main(void){  int marbles[SIZE] = {20,10,5,39,4,16,19,26,31,20};  long answer;  answer = sump(marbles, marbles + SIZE-1);  printf("The total number of marbles is %ld.\n", answer);     return 0;}int sump(int * start, int * end){  int total = 0;  while (start < end)  {  total += *start; /* add value to total */  start++; /* advance pointer to next element */  }     return total;} 

读书人网 >C语言

热点推荐