C++中,可以定义数组的引用吗?
//定义如下数组
int my_ary[10] = {0};
//想在此函数中对其进行处理
void Func(int &ary[]);
Func(my_ary);//错误
void Func(int &ary[],int aryLen);
Func(my_ary, 10);//错误
VC 2005显示arrays of references are illegal.
我想问下:C++中,可以定义数组的引用吗?
[解决办法]
int &ary[] ary首先向右结合,所以这个相当于 (int&)ary[] ary是个数组,其中的元素是引用。不过这个是非法的。
int (&ary)[10] ary首先和&结合,所以ary是引用,引用的对象是叔祖
[解决办法]
下面是关于,数组引用做参数的测试代码
- C/C++ code
void fun(int (&ary)[5]){ cout << "\n\t5\n";}void fun(int (&ary)[10]){ cout << "\n\t10\n";}void fun5(int (&ary)[5]){ cout << "\n\t5\n";}int main( void ){ //cout << func() << endl; int a[5]; int b[10]; fun(a); // 函数重载, 输出为 5 fun(b); // 函数重载, 输出为 10 fun5(a); // OK fun5(b); // 错误,参数类型不对 return 0;}