我在这里不理解。在下面的代码中,我定义了一个整数和一个常量整数。使用const int * const指针指向一个int
我可以有一个常量指针(int * const)指向一个整数。请参阅第四行代码。
相同的常量指针(int * const)不能指向常量整数。见第五行。
一个指向const(const int * const)的常量指针可以指向一个常量整数。这就是我所期望的。
但是,相同的(const int * const)指针允许指向一个非常量整数。看最后一行。为什么或如何这可能?
int const constVar = 42;
int variable = 11;
int* const constPointer1 = &variable;
int* const constPointer2 = &constVar; // not allowed
const int* const constPointer3 = &constVar; // perfectly ok
const int* const constPointer4 = &variable; // also ok, but why?
好像你对const关键字的含义有误解。 'const int *'并不意味着“我指向的int是const”,这意味着“我不会使用这个指针来改变我指向的int。”无论你指向的int是否为const,都不会改变发生的事情。 – Bill 2013-02-08 20:14:51
感谢您的答复和评论。就像比尔在评论中写的那样,我错了。 C++有时很难得到。 – 2013-02-11 11:27:58