c++ const关键字详解

const的基本概念:

     const名叫常量限定符,用来限定特定变量,以通知编译器该变量是不可修改的。习惯性的使用const,可以避免在函数中对某些不应修改的变量造成可能的改动。

 

const修饰指针变量时:

  (1)只有一个const,如果const位于*左侧,表示指针所指数据是常量,不能通过解引用修改该数据;指针本身是变量,可以指向其他的内存单元。

  (2)只有一个const,如果const位于*右侧,表示指针本身是常量,不能指向其他内存地址;指针所指的数据可以通过解引用修改。

  (3)两个const,*左右各一个,表示指针和指针所指数据都不能修改。

 以下是const使用时常见的几种情况:

  1.const int *p :无法修改p所指int值

  2.int const *p 等价于 const int*p :无法修改p所指的int值

  3.int * const p : 无法修改p所指的int *指针的值

  4.int const p : 声明p为常量,

  5.const int p 等价于 int const p : 声明p为常量

  6.const int * const p : p所指的指针和int值均不可修改

  7.const int & 等价于 int const & : 引用本身不可变,但引用的变量(或对象)可以改变

  8.const修饰成员函数

  const int * mallocA() const{
      int *a=new int(2);
      return a;
  }

  前一个const修饰该函数返回一个指针所指的值不可更改的int指针,后一个变量表明该函数内部不能修改成员变量的值

  9.const 修饰成员变量时,不能使用

  const int a = 10;

  应为:

  class A{

  public:

    A():a(10){}

  private:

    const int a ;

  };

 在编程中要尽可能多的使用const,这样可以获得编译器的帮助,以便写出健壮性的代码。

posted on 2017-06-13 11:08  凉城飞飞  阅读(137)  评论(0)    收藏  举报

导航