之前的文章有说过,使用指针我们可以改变指针指向的内容(通过给指针赋一个新的地址)或者改变被保存地址的值(通过给解引用指针赋一个新值):
int main()
{
int x {
5 }; // 创建一个整数变量 x,初始值为 5
int* ptr {
&x }; // 创建一个指针 ptr,指向 x 的地址(非 const 指针)
int y {
6 }; // 创建一个整数变量 y,初始值为 6
ptr = &y; // 将 ptr 指向 y 的地址,我们可以改变它指向的地址
*ptr = 7; // 通过指针修改 ptr 所指向地址的值,即将 y 的值改为 7
return 0; // 程序成功结束
}
那么,如果我们想指向的值是const
呢?
int main()
{
const int x {
5 }; // x 现在是常量,值为 5
int* ptr {
&x }; // 编译错误:不能将 const int* 转换为 int*,因为 x 是常量,不能修改它的值
return 0; // 程序正常结束