如果我想通过ref传递数组该怎么办?一个数组是一个指向其第一个元素的指针,我想通过ref传递'整个数组'。如果我定义C++ - 通过数组传递参考
void someFunction(double& adouble){...}
然后adouble是ref的双精度型,而不是双精度型数组。
如果我定义
void anotherFunction(double* adouble){...}
那么我的观点是指向一个双或数组,但它不是由裁判通过了,对不对?
感谢和问候
如果我想通过ref传递数组该怎么办?一个数组是一个指向其第一个元素的指针,我想通过ref传递'整个数组'。如果我定义C++ - 通过数组传递参考
void someFunction(double& adouble){...}
然后adouble是ref的双精度型,而不是双精度型数组。
如果我定义
void anotherFunction(double* adouble){...}
那么我的观点是指向一个双或数组,但它不是由裁判通过了,对不对?
感谢和问候
对于具体尺寸:
void foo(double (&array)[100]);
对于任何大小:
template <size_t N>
void foo(double (&array)[N]);
为什么不:
void foo(double *& bar)
这通过引用传递一个指针,如果你想要一个数组,这几乎是无用的。 – 2012-03-18 11:52:41
另一种可能性是使用结构作为p的包装驴阵列,这可以使它在某些情况下更方便。示例:
const int N = 100;
struct ArrayWrapper
{
double adouble[N];
};
void foo(ArrayWrapper& wrapper)
{
// ...
}
数组不是指向其第一个元素的指针。数组是一个数组。指针是一个指针。如果你想传递数组,你几乎肯定要使用'std :: vector'而不是 – jalf 2012-03-18 11:12:46
一个评论是不够的:**一个阵列不是一个指针**。在它引起你更多的麻烦之前,把你的头脑中的错误概念解决掉。 – Mankarse 2012-03-18 11:27:26