2013-08-03 48 views
0

我剛開始學習的理念,以「不變」,在C++和我遇到了一個問題:恆指針的整型

int d=0; 
const int* const pt = &d; 
d = 3; 
cout << *pt << endl; 

該腳本給出了「3」的輸出。 指針pt的定義應該解釋爲「一個常量int的常量指針pt」(至少我相信是這樣)。但是,當我改變d的值時,pt指向的int值也發生了變化,那麼它怎麼可能是一個「指向常量int的常量指針」?

非常感謝。

回答

4

指向const的指針並不意味着目標不能改變,這意味着你不能通過該指針修改目標。

由於該指針指向的內容不是const,因此可以更改。

+0

非常感謝,解釋。 – penpen926

0

沒有指針pt,你有

int d=0; 
d=3; 

這要是罰款。

如果聲明d const的,你不能改變它:

const int d=0; 
d=3; //ERROR 

指針pt不會改變什麼可以做dconst是一個承諾:我不會改變這一點,但別的可能。