C++中数组的引用

来源:互联网 发布:php登录界面 源代码 编辑:程序博客网 时间:2024/06/06 22:50

我们知道,引用就是给变量取一个别名。int a=10; int &ra=a;这样,ra就成了a的别名,对ra的操作就相当于对a的操作。那么可不可以引用数组呢?答案是肯定的。但是没有人会这么用,没有哪本书上会讲这么用。让我们来一一详解。比如:

void main(){int a[3]={1,2,3};int (&ra)[3]=a;cout<<ra[1];}

运行后输出了2,可见,我们成功的给数组a定义了一个别名ra,并且用ra输出了a数组的第二个元素。我们注意到定义别名的时候int (&ra)[3]=a;和定义普通变量的别名有很大的不同,小括号一定不能少,否则出错。数组长度[3]也必须与a数组的长度保持一致,多了或少了都出错。这样虽然能用,但是会更麻烦,所以基本上没有人这么用。如果我们将数组用按别名传参的方式传给函数,会更加麻烦。比如:

void func(int (&x)[3]){x[0]=10;}void main(){int a[3]={1,2,3};func(a);cout<<a[0];}

正常运行,输出了10 ,但我们要注意,如果我们把长度不为3的数组作为参数传进func函数就要出错了,因为我们在func函数中定义的用来接收参数的数组别名长度为3,这比指针更麻烦,还有这些诸多限制,所以没有人这么用,我们研究下学习下就可以了,实际过程中用指针接收参数即可。

原创粉丝点击