【发布时间】:2022-01-08 17:41:42
【问题描述】:
为什么我有以下代码的错误:
const int r = 3;
int *const ptr = &r;
但是,如果我将 r 定义为普通 int,它会正常工作。据我了解,第二行仅将指针 ptr 定义为 const,这意味着该指针的值不能更改。但是为什么我一个 const 指针不能指向一个 const int 呢?
【问题讨论】:
-
根据 Cpp Primer 5th Ed 一书。简单的技巧是从里到外阅读它。
const int *ptr = &r;可以被读取为指向常量整数的指针。但是,int *const ptr = &r;可以读取为指向整数的常量指针。在您的情况下,r是一个常量整数,但指针需要指向一个整数。希望这会有所帮助:) -
@programmingRage 是的,它有帮助!谢谢
标签: c++ pointers variables constants