Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我刚刚开始学习 C++ 中的“常量”概念,遇到了一个问题:
int d=0; const int* const pt = &d; d = 3; cout << *pt << endl;
该脚本给出“3”的输出。指针 pt 的定义应该解释为“指向常量 int 的常量指针 pt”(至少我是这么认为的)。但是,当我改变d的值时,pt指向的int值也改变了,那怎么会是“指向CONSTANT int的常量指针”???
非常感谢。
指向 const 的指针并不意味着目标不能更改,这意味着您不能通过该指针修改目标。
由于该指针指向的不是 const,因此允许更改。
没有指针pt,你有
pt
int d=0; d=3;
如果可以的话。
如果你声明 d const,你不能改变它:
const int d=0; d=3; //ERROR
指针pt不会改变可以做什么d。 const是一个承诺:我不会改变这一点,但其他东西可能会。
d
const