我在這裏不理解。在下面的代碼中,我定義了一個整數和一個常量整數。使用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