指针本身和指针所指向的内容都有一个“值”,二者的 const 属性需要分别讨论。
常量的指针
根据我的理解,我把 const * 读成“常量的指针”(const 在左边所以先读,*在右边所以后读),这表示这个指针指向的内容不能通过这个指针修改。需要补充的是:虽然我把const *读成“常量的指针”,但并不是说它不能指向变量。
int i = 10;
int const * p = &i; // OK
*p = 20; // 编译错误,*p是只读对象
指针常量
* 在左边,const 在右边,所以我把它读成“指针常量”,表示这个指针不能被修改(初始化过后就不能修改它的值使其指向其他东西)
#include <iostream>
int main()
{
int i = 10;
int * const p = &i;
*p = 20; // OK
int n = 30;
p = &n; // 编译错误,p是只读对象
return 0;
}
本文详细解析了C++中指针与const的关系,包括常量的指针和指针常量的概念及其用法。通过具体代码示例展示了如何使用const来限制指针指向的对象或指针本身的修改。

6959

被折叠的 条评论
为什么被折叠?



