C++

C++ 学习笔记

"(转)C++中Const详解"

Posted by R0nzy on July 31, 2016

常量

  • 通过const关键字将一个变量定义为常量。 const int bufsize=1024; \\定义时必须初始化 bufsize=1;\\一经定义不能改变它的值 const double PI; \\这将产生语法错误

指向const类型对象的指针

  • const int *p; p是一个指向int类型对象的指针,但p本身并不是一个常量,也就是说p可以指向任何一个int类型的对象,但由p所指向的对象不可以通过p来改变值。

对象常量

  • <类名> const <对象名> 或者 const <类名> <对象名>。定义常对象时,同样要进行初始化,并且该对象不能再被更新。

常指针

  • <类型>\* const <对象> 表示定义一个常量指针,对象本身不能改变,但所指向的值是可以改变的。
  • const <类型> \* <对象> 表示定义一个常量的指针或指针常量,该变量的本身可以改变,但所指向的值是不能改变的。

常引用

  • const <类型> &<对象>
  • 使用const修饰符也可以说明引用,被说明的引用为常引用,该引用所引用的对象不能被更新。如:
  • const double &v;//v是一个引用
  • v=12.3 //非法,不能更新

总结

  1. const int a=100; a是一个常变量,值不可改变
  2. int const b=100; 与1一样
  3. const int *a=&b; 指向常数的指针,即指针本身的值是可以改变的,但指向的内容不可变
  4. int const *a=&b; 与3一样
  5. int * const a=&b; 常指针,即指针本身的值不可改变的,但指向的内容是可改变的
  6. const int * const a=&b;指向常数的常指针,即指针本身与指向的内容都是不可改变的
  7. const int &a=100; 常数引用,即不能改变引用的值;