如何通过引用传递数组
How to pass an array by reference?
我试图通过引用传递这个数组,但我的代码似乎无法获取函数。帮助
#include <iostream>
using namespace std;
void print( int (&array)[], int lower_bound, int upper_bound );
int main()
{
// generate array
const int SIZE = 20;
int array[SIZE];
for ( int i = 0; i < SIZE; i ++ ) array[i] = rand()%500;
// end generate array
print(array,0,19);
return 0;
}
void print( int (&array)[], int lower_bound, int upper_bound )
{
for ( int i = lower_bound; i <= upper_bound; i ++ ) cout << i << " : " << array[i] << endl;
}
如何在CPP中通过引用传递数组?
你几乎得到了正确的语法,但你需要数组的大小,如果你只需要支持一个大小,你可以明确指定:
const int SIZE = 20;
void print( int (&array)[SIZE], int lower_bound, int upper_bound );
或者如果你需要不同大小的函数,可以使用函数模板来推导:
template <size_t N>
void print( int (&array)[N], int lower_bound, int upper_bound )
{
// code here
}
请注意,C++中有更多惯用的解决方案。一种是通过begin和over-the-end迭代器(纯指针即可)指定范围。其他方法是将std::array
用于固定大小的阵列,将std::vector
用于动态大小的阵列。
相关文章:
- 通过指针与数组引用扩展数组索引序列
- 将链表的内容放在数组引用中
- 是否允许使用初始值设定项列表将const数组引用实例化为构造函数参数
- C 在将数组引用分配给struct时麻烦
- Typedef数组引用
- 通过强制转换创建子数组引用
- 将数组引用 'T(&)[n]' 引用到 'std::array<T, n>' 的内容
- constexpr 数组引用参数
- 寻找有关函数定义和原型中数组引用的说明
- Initializer_list作为非模板上下文中数组引用参数的参数
- 如何使用一个动态创建的一维数组的二维数组引用仅与标准库?
- 如何返回具有大小的POD数组引用
- 在C++中返回数组引用的语法
- 是否可以声明转换函数返回数组引用而不使用typedef
- 自定义到数组引用的转换
- 类数组引用的NullReferenceException
- 数组指针与数组引用之间的差异
- 在c++中传递数组引用
- 使用特征矩阵作为特征数组引用的参数
- 如何从函数传递数组引用