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

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

2012-09-18 
请教指针和数组的一个例题#include stdio.h#define SIZE 10int sump(int * start, int * end)int main(

请教指针和数组的一个例题
#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;} 

热点排行