21xrx.com
2024-12-22 23:56:53 Sunday
登录
文章检索 我的文章 写文章
C++函数如何返回数组
2023-07-08 19:41:39 深夜i     --     --
C++ 函数 返回 数组

在C++中,函数可以返回各种类型的值,例如整数、浮点数、布尔值、字符串等等。但是,如果函数需要返回一个数组,该怎么办呢?

我们可以使用指针或引用作为返回值,来返回数组。因为数组名本质上就是指向数组首元素的指针。

以下是一个简单的例子,展示如何使用指针返回数组:


int* foo() {

  static int arr[5] = 3;

  return arr;

}

int main() {

  int* arr_ptr = foo();

  for (int i = 0; i < 5; i++) {

    std::cout << arr_ptr[i] << " ";

  }

  // 输出:1 2 3 4 5

  return 0;

}

在上面的例子中,我们定义了一个函数`foo()`,它声明了一个静态的int类型数组,并返回该数组的指针。在主函数中,我们调用`foo()`函数并将其返回的指针保存在名为`arr_ptr`的指针变量中。然后,我们使用循环打印`arr_ptr`所指向的数组中的元素。

如果想使用引用方式返回数组,可以使用`std::array`或`std::vector`等标准库容器。这里我们以`std::array`为例展示如何返回数组引用。


std::array<int, 5>& bar() {

  static std::array<int, 5> arr = 1;

  return arr;

}

int main() {

  std::array<int, 5>& arr_ref = bar();

  for (int i = 0; i < 5; i++) {

    std::cout << arr_ref[i] << " ";

  }

  // 输出:1 2 3 4 5

  return 0;

}

在这个例子中,我们定义了一个函数`bar()`,它声明了一个静态的`std::array `类型的数组,然后返回该数组的引用。在主函数中,我们声明了一个名为`arr_ref`的引用变量,并将`bar()`函数返回的数组引用赋值给它。最后,我们使用循环打印`arr_ref`所引用的数组中的元素。

总之,使用指针或引用返回数组都是可行的方法。如果你要返回一个固定长度的数组,可以使用指针;如果你要返回一个动态长度的数组,可以使用引用和标准库容器。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复