C++-通过引用传递数组
C++ - pass array by ref
如果我想通过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)
{
// ...
}
相关文章:
- 通过指针与数组引用扩展数组索引序列
- 将链表的内容放在数组引用中
- 是否允许使用初始值设定项列表将const数组引用实例化为构造函数参数
- C 在将数组引用分配给struct时麻烦
- Typedef数组引用
- 通过强制转换创建子数组引用
- 将数组引用 'T(&)[n]' 引用到 'std::array<T, n>' 的内容
- constexpr 数组引用参数
- 寻找有关函数定义和原型中数组引用的说明
- Initializer_list作为非模板上下文中数组引用参数的参数
- 如何使用一个动态创建的一维数组的二维数组引用仅与标准库?
- 如何返回具有大小的POD数组引用
- 在C++中返回数组引用的语法
- 是否可以声明转换函数返回数组引用而不使用typedef
- 自定义到数组引用的转换
- 类数组引用的NullReferenceException
- 数组指针与数组引用之间的差异
- 在c++中传递数组引用
- 使用特征矩阵作为特征数组引用的参数
- 如何从函数传递数组引用