读书人

C++中可以定义数组的引用吗?解决办

发布时间: 2012-04-12 15:46:35 作者: rapoo

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;} 

读书人网 >C++

热点推荐