我刚刚开始学习C++中的“常量”概念,我遇到了一个问题:
int d=0;
const int* const pt = &d;
d = 3;
cout << *pt << endl;这个脚本给出了"3“的输出。指针pt的定义应该解释为“指向常量int的常数指针pt”(至少我认为是这样)。然而,当我改变d的值时,pt所指向的int值也发生了变化,那么它怎么可能是“指向常量int的常量指针”呢?
非常感谢。
发布于 2013-08-03 13:14:38
指向const的指针并不意味着目标不能更改,它意味着您不能通过该指针修改目标。
因为指针指向的不是const,所以允许更改。
发布于 2013-08-03 13:17:07
如果没有指针pt,您就有了
int d=0;
d=3;如果没问题的话。
如果您声明了d const,则不能更改它:
const int d=0;
d=3; //ERROR指针pt不改变可以对d执行的操作。const是一个承诺:我不会改变这一点,但其他东西可能会改变。
https://stackoverflow.com/questions/18033215
复制相似问题