关于传递指针给函数的未解疑问

Posted stublogs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于传递指针给函数的未解疑问相关的知识,希望对你有一定的参考价值。

之前在菜鸟教程复习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为什么变成了数组,而不是原先的指针?


以上是关于关于传递指针给函数的未解疑问的主要内容,如果未能解决你的问题,请参考以下文章

我可以将 std::string 传递给 DLL 吗?

将数组传递给函数形式参数

将结构指针向量对的值传递给函数

关于结构的未初始化指针分配的语义

疑问C++结构体(数组)指针作为函数参数,会不会修改实参的值?

如何将函数指针传递给成员函数c++?