指向常量int的常量指针

时间:2013-08-03 13:12:18

标签: c++ pointers constants

我刚刚开始在C ++中学习“常量”这个概念,我遇到了一个问题:

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

此脚本提供输出“3”。 指针pt的定义应解释为“常量指针pt到常量int”(至少我相信如此)。但是,当我更改了d的值时,pt指向的int值也发生了变化,那怎么可能是“一个指向CONSTANT int的常量指针”???

非常感谢。

2 个答案:

答案 0 :(得分:4)

指向const的指针并不意味着目标无法更改,这意味着您无法通过该指针修改目标。

由于指针指向的不是const,因此允许更改。

答案 1 :(得分:0)

没有指针pt,你有

int d=0;
d=3;

哪个好。

如果声明为d const,则无法更改它:

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

指针pt不会改变d的功能。 const是一个承诺:我不会改变这一点,但其他可能会改变。