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

来源:互联网 发布:个人博客项目源码下载 编辑:程序博客网 时间:2024/05/29 08:34

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

不能建立引用的数组,例如: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并不分配新的内存,无法完成复制,对于数组元素是引用来说,一样没法完成数组元素的复制操作

阅读全文
0 0
原创粉丝点击