【发布时间】:2013-03-05 19:03:55
【问题描述】:
在我正在阅读的一本关于 C++(C++ for Dummies)的书中,有一节内容如下:
int nVar = 10;
int* pVar = &nVar;
const int* pcVar = pVar; // this is legal
int* pVar2 = pcVar; // this is not
这本书接着解释:
赋值pcVar = pVar;没关系 - 这是添加 const 限制。 sn-p 中的最终分配是不允许的,因为 它试图删除 pcVar 的 const-ness
我的问题是为什么最后一行不“合法”。我不明白这如何阻碍 pcVar 的“常量性”。谢谢。
【问题讨论】:
-
int pVar = &nVar是不合法的 - 您正在将整数转换为指向整数的指针。我怀疑这是一个错字,但您可能希望更正它。 -
该代码中没有赋值,任何引用这些初始化的书都不适合阅读。
-
其实书上是这样的。我不知道这是否是一个错字,但如果我要纠正它,这个问题仍然有意义吗?
-
可能是书上的错字,应该是
int * pVar = &nVar;您应该更正它,以免以后混淆其他访问者 -
哇 7 个答案在 9 分钟内