C ++ - 通过ref传递数组

时间:2012-03-18 11:08:02

标签: c++ arrays pointers pass-by-reference

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

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

然后adouble是一个double的引用,而不是带有双精度的数组。

如果我定义

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

然后我的参数是一个指向double或数组的指针,但它不是由ref传递的,对吗?

谢谢和问候

3 个答案:

答案 0 :(得分:4)

具体尺寸:

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

任何尺寸:

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

答案 1 :(得分:2)

为什么不:

void foo(double *& bar)

答案 2 :(得分:0)

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

const int N = 100;

struct ArrayWrapper
{
  double adouble[N];
};

void foo(ArrayWrapper& wrapper)
{
  // ...
}