C++ C++;常数与常数之间的差异;定期及;

C++ C++;常数与常数之间的差异;定期及;,c++,reference,constants,C++,Reference,Constants,可能重复: 我是C++新手,来自java编程,C++中引用的怪异用法对我来说是不自然的。我不是一个新的程序员,所以我希望有一个关于这个主题的严肃而深刻的答案,而不是一个肤浅的“何时使用”的唯一答案 我想知道它们之间的区别是什么 const A& p; 及 常量A&p是对类型为A的常量对象的引用 A&p是对A类型的(非常量)对象的引用,第一个是常量,第二个不是常量。这里有什么不自然的?o。O@Griwes不自然的是java和.NET语言没有明确的概念: const 代码> >或>代码

可能重复:

<>我是C++新手,来自java编程,C++中引用的怪异用法对我来说是不自然的。我不是一个新的程序员,所以我希望有一个关于这个主题的严肃而深刻的答案,而不是一个肤浅的“何时使用”的唯一答案

我想知道它们之间的区别是什么

const A& p; 


常量A&p
是对类型为
A
的常量对象的引用


A&p
是对
A
类型的(非常量)对象的引用,第一个是常量,第二个不是常量。这里有什么不自然的?o。O@Griwes不自然的是java和.NET语言没有明确的概念:<代码> const const A&P <代码>是对一个类型的对象的引用,它是代码< >代码> >或>代码> > const 本身。@ Fr.CuCuoo:不,C++中没有“const引用”这样的东西。这意味着什么?引用永远是不可变的,因为您永远不能将其设置为指向不同的对象。您有对常量对象的引用和对非常量对象的引用。但是你没有常量引用,信息量会减少吗?你根本没帮我……@OfekRon:那么也许你应该更清楚你想知道什么。也许你应该放弃这种态度,因为我实际上是在回答你的问题(不像其他所有投票结束它的人)。你到底不明白什么?你知道常量对象是什么吗?你知道什么是引用吗?@jalf-是的,当然引用本身是不可变的。对我来说,这是一个糟糕的术语选择。我的意思是,如果你写
const A&p=q
,即使
q
可能是可变的,也不能通过
p
更改它而不调用未定义的行为。
A& p;