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

 我来答
_whales
2018-02-13 · TA获得超过2279个赞
知道大有可为答主
回答量:1814
采纳率:85%
帮助的人:507万
展开全部
C++:
引用不是真正的变量。只是变量的别名。
引用的地址是所引用对象的地址,引用的值是所引用对象的值。

引用就是所引用对象本身。

换句话说,引用只是个符号(名字),不是变量,所以也不能有引用数组。

所以引用的初始化和赋值,没有任何相同之处。
所以无法建立引用数组。
如果可以建立引用数组,那么对引用使用取址运算符 &就有了二义性。
viichi
2018-02-13 · TA获得超过355个赞
知道小有建树答主
回答量:158
采纳率:0%
帮助的人:210万
展开全部
首次,引用的概念,等价与 指针常量。
int n;
int * const ptr = &n;
int &ref = n;
ptr 和 ref 除了语法之外,可以理解为是完全等价的。
常量在定义时必须初始化,同样的引用在定义时也必须初始化。

ok,切入正题,C++对数组的初始化方法,没有额外的定义,而是沿用了C语言的初始化方式。
int a[] = {1, 2, 3};
int *p[] = { a, a + 1, a + 2 };
C++中引入了拷贝构造,即,用初始化列表中的值,拷贝构造数组中的元素。
而拷贝构造函数的形式为:T::T(const T &);
又因为C++不允许引用的引用,所以T不能为引用类型。
所以,在以上框架下,不允许存在引用的数组。

不过,相信你看到这里,会用 常指针数组 实现"引用数组"这个需求了..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式