我可以在c++中按值返回数组吗?

Can I return an array by value in C++?

本文关键字:返回 数组 c++ 我可以      更新时间:2023-10-16

我可以在c++中按值返回数组吗?这里的值是指返回一个副本,而不是使用指针。如果是这样的话,有人能提供一个返回一维数组和二维数组的例子吗?

不;你可以按值返回数组,只有通过将它们包装在structclass中(实际上,你可以简单地返回一个适当的std::array实例,它将c风格的数组封装在一个模板类中,该模板类还提供了一些花式和口哨)。

这在C/c++中是不允许的。

你可以通过引用返回数组,如果它不是函数的局部。另一种方法是将其包装在"struct/class"包装器中并返回其对象。

不,这是不可能的,除非您使用某种自定义数组类(例如Matteo Italia提到的std::array)。C/c++中的数组与指针的处理方式基本相同。