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

int fillarr(int arr[])
{
    for(...);
    return arr;
}
  • 如何返回该数组?
  • 我将如何使用它,说我返回了一个指针,我将如何访问它?
  • 最佳答案

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

    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;
    }
    

    07-24 09:51
    查看更多