博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
为什么不能建立引用数组?
阅读量:4223 次
发布时间:2019-05-26

本文共 505 字,大约阅读时间需要 1 分钟。

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

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

转载地址:http://vdkqi.baihongyu.com/

你可能感兴趣的文章
编写苹果游戏中心应用程序(翻译 1.8 获取本地玩家的好友信息)
查看>>
WebGL自学教程《OpenGL ES 2.0编程指南》翻译——勘误表
查看>>
WebGL自学教程——WebGL示例:13.0 代码整理
查看>>
WebGL自学教程——WebGL示例:14.0 代码整理
查看>>
恶心的社会
查看>>
中国式危机公关9加1策略(第五章 慎用信息控制策略)
查看>>
展现自己的人生智慧
查看>>
深入理解java多态性
查看>>
Java新手进阶:细说引用类型
查看>>
osg中使用MatrixTransform来实现模型的平移/旋转/缩放
查看>>
(一) Qt Model/View 的简单说明
查看>>
(二)使用预定义模型 QStringListModel例子
查看>>
UVM:7.4.5 加入存储器
查看>>
UVM:7.5.1 期望值与镜像值
查看>>
UVM:7.5.2 常用操作及其对期望值和镜像值的影响
查看>>
UVM:7.6.1 检查后门访问中hdl 路径的sequence
查看>>
UVM:7.6.2 检查默认值的sequence
查看>>
UVM:7.7.1 使用reg_predictor
查看>>
UVM:7.7.2 使用UVM_PREDICT_DIRECT功能与mirror 操作
查看>>
UVM:7.7.3 寄存器模型的随机化与update
查看>>