c++ - 在函数中返回数组

标签 c++ arrays pointers function return

我有一个数组 int arr[5] 传递给函数 fillarr(int arr[]):

int fillarr(int arr[])
{
    for(...);
    return arr;
}
  1. 我怎样才能返回那个数组?
  2. 我将如何使用它,假设我返回了一个指针,我将如何访问它?

最佳答案

在这种情况下,您的数组变量 arr 实际上也可以通过隐式转换被视为指向内存中数组 block 开头的指针。您正在使用的语法:

int fillarr(int arr[])

只是一种语法糖。你真的可以用这个替换它,它仍然可以工作:

int fillarr(int* arr)

所以在同样的意义上,你想要从你的函数返回的实际上是一个指向数组中第一个元素的指针:

int* fillarr(int arr[])

而且您仍然可以像使用普通数组一样使用它:

int main()
{
  int y[10];
  int *a = fillarr(y);
  cout << a[0] << endl;
}

关于c++ - 在函数中返回数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40633209/

相关文章:

c++ - unique_ptr 的有效性

c++ - 在后台接收按键

c++ - 类运算符重载

javascript - 比较包含对象的两个数组

javascript - JQuery,AJAX : How can I populate an array with a json return?

c++ - 如何正确传递带有函数指针的数组?

c - ffmpeg 中的 av_freep 如何工作?

c++ - 安装 Folly(c++ 库)通过 vcpkg 出错

c++ - 比较对象指针

Javascript - 如何创建对象数组?