0

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

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

该脚本给出“3”的输出。指针 pt 的定义应该解释为“指向常量 int 的常量指针 pt”(至少我是这么认为的)。但是,当我改变d的值时,pt指向的int值也改变了,那怎么会是“指向CONSTANT int的常量指针”???

非常感谢。

4

2 回答 2

4

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

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

于 2013-08-03T13:14:38.490 回答
0

没有指针pt,你有

int d=0;
d=3;

如果可以的话。

如果你声明 d const,你不能改变它:

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

指针pt不会改变可以做什么dconst是一个承诺:我不会改变这一点,但其他东西可能会。

于 2013-08-03T13:17:07.073 回答