C++ const 指针详解:const int *p 与 int const *p 的区别

在 C++ 中,const int *pint const *p 都声明了一个指向 const int 类型的指针 p。这意味着指针 p 所指向的值是不能被修改的。

const int *p

const int *p 是指针 p 是一个指向 const int 类型的指针,也就是指针 p 是可变的(可以指向不同的地址),但是指针所指向的值是不可变的。

示例:

const int a = 10;
const int *p = &a;

*p = 20; // 错误,不能修改指针 p 所指向的值
p = nullptr; // 正确,可以修改指针 p 的指向

int const *p

int const *p 是一个相同的声明,同样表示指针 p 是一个指向 const int 类型的指针,指针 p 是可变的,但是指针所指向的值是不可变的。

示例:

int b = 30;
int const *p2 = &b;

*p2 = 40; // 错误,不能修改指针 p2 所指向的值
p2 = nullptr; // 正确,可以修改指针 p2 的指向

总结

因此,const int *pint const *p 这两个声明的效果是一样的,它们都声明了一个指向不可修改的 int 类型的指针。

注意:

  • const 关键字在 * 的左边,表示指针所指向的值是不可修改的。
  • 指针本身的值(也就是指针所指向的地址)是可以修改的。
C++ const 指针详解:const int *p 与 int const *p 的区别

原文地址: https://www.cveoy.top/t/topic/zYR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录