为什么不能建立引用的数组?
来源:互联网 发布:个人博客项目源码下载 编辑:程序博客网 时间: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
- 为什么不能建立引用的数组?
- 为什么不能建立引用数组?
- c++不能建立引用数组,可以建立数组的引用
- 不能建立引用数组,数组中的元素不能是引用
- C++中,所谓“不能建立数组引用”的解释
- C++的数组元素为什么不能是引用类型
- 为什么能数组引用,但不能引用数组
- 为什么navicat for mysql不能建立远程的查询?
- sizeof为什么不能计算被动态分配的数组
- sizeof为什么不能计算被动态分配的数组
- android studio为什么不能现在引用开源库
- android studio为什么不能现在引用开源库
- 为什么在建立数据库物理模型的时候不能表示多对多的关系???
- int & *p; //不能建立指向引用的指针;int *a; int * & p=a; //正确,指针变量的引用
- int & *p; //不能建立指向引用的指针;int *a; int * & p=a; //正确,指针变量的引用
- 为什么windows里不能建立文件名为con的任何文件和文件夹(转)
- 为什么已经引用了命名空间的情况下仍不能调用其中的类
- 了解临时对象的来源 (深刻理解为什么不能返回一个临时变量的引用)
- [总结]操作系统真是博大精深(一)
- concurrent常用类(二)
- 北京二手房成交继续低迷 有豪宅每周降价300万
- PDF阅读编辑器中压缩PDF文档的能力杠杠的
- mybatis-generator通过JavaParser工具实现Java代码合并
- 为什么不能建立引用的数组?
- 杭电5248—序列变换,最基础的二分
- Android常见的上滑渐变显示标题栏
- python Crypto模块的使用
- linux 常用命令(附录git 使用)
- GuavaCache简介
- logstash5.5.2部署-03
- angularjs概述
- phpstorm debug断点调试