c++ - C++:通过函数传递指针数组的语法

标签 c++ arrays function pointers reference

因此,我有这两种方法:第一种方法是取5个整数值,将它们求和,然后调用findLowest()方法,该方法返回找到的最低值,然后从总和中减去(然后除以4,然后打印结果)向屏幕)。
我认为我遇到的问题是返回的值是内存地址。我试图了解如何取消对整数的引用以获取该值,但事实是,告诉我我所查找的所有在线资源都使我头疼。
以下是我到目前为止的内容:

void calcAverage(int* arr[5])
{
   int sum = 0;

   for (int a = 0; a < 5; a++)
      sum += *arr[a];

   sum -= findLowest(*arr);

   cout << "AVERAGE " << (sum / 4) << endl;
}


int findLowest(int* arr[5])
{
   int lowest = *arr[0];

   for (int a = 1; a < 5; a++)
   {
      if ((int)arr[a] < lowest)
         lowest = *arr[a];
   }


   return lowest;
}
最重要的是,

sum -=findLowest(*arr);


它弹出一个错误,读取

argument of type "int *" is incompatible with parameter of type "int **"


感谢您提前提供的帮助,如果帖子有点分散,我们也很抱歉:我对使用该指针/引用资料一开始并没有真正的信心。

最佳答案

您快到了,但是您不应该在此行取消引用:

sum -= findLowest(*arr);
相反,只需传入数组,因为这是函数期望的结果:
sum -= findLowest(arr);

无关:
如果可以,请使用std::vectorstd::array,前者用于动态调整大小的数组,后者用于编译时数组。这些都更安全,具有更多功能并且更易于传递。
也可以使用智能指针代替原始指针来拥有指针。智能指针管理对象的所有权,因此您无需手动调用newdelete

关于c++ - C++:通过函数传递指针数组的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64812447/

相关文章:

c++ - C++ 中的通用 gotoXY 实现

c++ - 范围 View 大小不编译

c++ - 在成员调用中实例化类

c++ - 如何自定义我的按钮?

android - 整数数组中随机选择的索引导致崩溃

arrays - 如何从 n 个数组中找到公共(public)元素

javascript - 使用数组参数构造对象函数

javascript - 如何从函数中获取选定的元素并将其作为另一个函数的参数传递

javascript - 异步脚本加载回调

function - 授予使用函数的 View 的选择权