C++-通过引用传递数组

C++ - pass array by ref

本文关键字:数组 引用 C++-      更新时间:2023-10-16

如果我想通过ref传递数组怎么办?数组是指向其第一个元素的指针,我想通过引用传递"整个数组"。如果我定义

void someFunction(double& adouble){...}

那么adouble是一个双精度的引用,而不是一个具有双精度的数组。

如果我定义

void anotherFunction(double* adouble){...}

那么我的参数是指向double或数组的指针,但它不是由ref传递的,对吧?

感谢并问候

对于特定大小:

void foo(double (&array)[100]);

对于任何尺寸:

template <size_t N>
void foo(double (&array)[N]);

为什么不:

void foo(double *& bar)

另一种可能性是使用结构作为包装器来传递数组,这在某些情况下会更方便。一个例子:

const int N = 100;
struct ArrayWrapper
{
  double adouble[N];
};
void foo(ArrayWrapper& wrapper)
{
  // ...
}