之前在菜鸟教程复习C++,着重看了一下比较难的指针,其中传递指针给函数这一部分有一些疑惑未解,希望看到的人可以帮忙给个解答。

程序代码如下

#include <iostream>
using namespace std;
 
// 函数声明
double getAverage(int *arr, int size);
 
int main ()
{
   int balance[5] = {1000, 2, 3, 17, 50};  // 带有 5 个元素的整型数组
   double avg;
 
   avg = getAverage( balance, 5 ) ;    // 传递一个指向数组的指针作为参数
 
   cout << "Average value is: " << avg << endl; // 输出返回值
    
   return 0;
}

double getAverage(int *arr, int size)    //再次运用函数,使得sum得以累加
{
  int    i, sum = 0;       
  double avg;          
 
  for (i = 0; i < size; ++i)
  {
    sum += arr[i];
   }
 
  avg = double(sum) / size;    //求平均
 
  return avg;
}

代码中将balance传入函数,此时balance为数组,传入函数的形参中声明arr是一个指针,指向balance数组的第一个元素
但函数中给sum赋值时,直接采用sum+=arr[i]来进行赋值,这里的arr为什么变成了数组,而不是原先的指针?