C++中,可以定义数组的引用吗?//定义如下数组int my_ary[10] {0}//想在此函数中对其进行处理void Func(i
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是引用,引用的对象是叔祖
[解决办法]
下面是关于,数组引用做参数的测试代码
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;
}
