为什么不能建立引用的数组?

引用就是某一个变量的别名,引用的地址就是原变量的地址,引用的值就是原变量的值

不能建立引用的数组,例如:int & ref[3] = { 2, 3, 5}; //声明ref引用的数组是错误的

但是可以建立数组的引用:例如:int arr[3]; int (&tef)[3] = arr; //这是这是正确的


为什么数组中的元素不能是引用?

c++中,引用可以说只是某个变量的别名,所谓别名,是和指针类型区分开的:指针类型也可以指向某个变量,但指针类型本身也是一个变量,而引用实际上不是一个变量。更本质来说,可以理解为引用没有自身的地址,不占用内存空间(这里为了简化问题可以这样考虑)。因此,声明引用数组没有办法分配空间,因为根本就没有空间可以分配给引用。所以不能声明和定义引用数组

例如:


数组元素的引用为:int& arr[3];但是引用不可以作为数组中的元素,原因是C++不支持传统意义的复制,

传统的复制为:int a = b;


这里a和b在内存中分别占用,内容一致

如果是:int &a = b;

这种类型,内存中a并不分配新的内存,无法完成复制,对于数组元素是引用来说,一样没法完成数组元素的复制操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值