【发布时间】:2017-09-10 13:34:23
【问题描述】:
几天前我买了一本 C++ Primer 书,开始学习这门新语言!
目前,我正试图弄清楚为什么我自己写的这个块是非法的:
我将一个 const int 初始化为 512; 我初始化一个指向 n 的 const int const 指针; 但它不允许我创建一个指向指针的 const int const 指针,即使正确使用双 ** 和一切:
const signed int n = 512;
const signed int *const nPointer = & n;
const signed int **const nPointer2 = & nPointer;
有人有简单的解释吗?感谢您的宝贵时间!
【问题讨论】:
-
你遇到了什么错误?
-
最后一行,一个
const放错地方了:const signed int * const * nPointer2 = & nPointer;nPointer2是不是const都没有关系(也就是可以做成指向某事否则)-重要的是它指向的是const。 -
哦,谢谢,现在我明白了!
-
编译器在其错误消息中告诉您为什么这是非法的。确实,C++ 编译器的错误消息以完全令人困惑和难以理解而著称。尽管如此,必须学习如何阅读和理解 C++ 编译器错误消息。如果每次遇到编译错误都必须在 stackoverflow.com 上发布问题,那么学习 C++ 将花费你一生的时间。现在您了解了问题所在,请返回并重新阅读编译器的原始消息,并继续重新阅读它,直到它对您有意义为止。