首页 > 解决方案 > 如何正确使用指针来计算平均值

问题描述

我想使用 avgs 作为指针,但是如何修改下面的代码以正确使用它?给定起始指针和长度,我正在计算一个 int 数组的平均值。

int compute_average(int *avgs, int len) {
  int sum = 0;
  for (int i = 0; i < len; i++)
  sum += avgs[i];
  return (int)(sum / len);
}

我试着这样写,但它不能正常工作:

  do {sum += *avgs;} 
  while(*(avgs++)!='\0');

标签: c++pointersarduino

解决方案


\0当您使用字符串时,测试您的指针不指向 a很好。在这里,您有一个整数数组和一个长度,因此您不能真正使用目标点来停止增加指针。您需要len像在第一个代码段中一样使用它,但i您仍然可以递增指针,而不是访问数组的第 th 个元素。像这样的东西:

int compute_average(int *avgs, int len) {
  int sum = 0;
  for (int i = 0; i < len; i++)
    sum += *(avgs++);
  return (int)(sum / len);
}

推荐阅读