C++中数组的引用

我们知道,引用就是给变量取一个别名。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,这比指针更麻烦,还有这些诸多限制,所以没有人这么用,我们研究下学习下就可以了,实际过程中用指针接收参数即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值