当前位置:首页 C++ > 正文

c++常量指针和指针常量的区别

作者:野牛程序员:2023-07-31 15:22:43 C++阅读 2240

在C++中,常量指针(const pointer)和指针常量(pointer to const)是两种不同类型的指针,它们有着不同的含义和用法。

  1. 常量指针(const pointer):

    • 声明形式:const int* ptr;int const* ptr;

    • 指针本身是可以改变的,但指向的内容是常量,不能通过指针来修改所指向的值。

    • 示例:

      int x = 10;
      const int* ptr = &x;
      *ptr = 20; // 错误,无法通过 ptr 修改 x 的值
      ptr = &y; // 正确,可以改变 ptr 的指向
  2. 指针常量(pointer to const):

    • 声明形式:int* const ptr;

    • 指针本身是常量,一旦指针被初始化后,其指向不能再改变,但指向的内容是可变的。

    • 示例:

      int x = 10, y = 20;
      int* const ptr = &x;
      *ptr = 30; // 可以通过 ptr 修改 x 的值
      ptr = &y; // 错误,无法改变 ptr 的指向

区分这两种指针类型的方法是:将目光集中在*const的位置。对于常量指针,const*的左边;对于指针常量,const*的右边。

需要注意的是,常量指针和指针常量的含义和用法对于指针所指向的对象类型也是一样的。例如,const int* ptr;表示指向常量整数的指针,而int* const ptr;表示指针本身是常量的,指向可变整数的指针。

这两种类型的指针在实际应用中具有不同的用途,根据需求选择合适的类型有助于增强代码的可读性和安全性。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击