首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-04-12 
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是引用,引用的对象是叔祖
[解决办法]
下面是关于,数组引用做参数的测试代码

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

热点排行