1.const对象一旦创建后其值就不能改变,因此定义时即初始化
2.const的引用
const int a=1024;
int b=42;
//对常量的引用,不能用普通引用int &r1=a
const int &r1=a;
//对非常量的引用,不能用r2改变b的值
const int &r2=b;
3.const与指针
a.指向常量的指针
const double pi=3.14;
double dval =3.14;
//指向常量,只能使用指向常量的指针,不能使用普通指针double *ptr=&pi
const double *cptr=π
//指向非常量,允许使用指向常量的指针,但不允许通过该指针改变非常量的值
cptr=&dval;
b.const指针(常量指针)
int data=0;
const double pi=3.14;
//在const前加*说明指针是一个常量,即常量指针
//不变的是指针本身的值(地址)而不是指针指向的对象,即指针一直指向该地址
int *const address=&data;
//指向常量对象的常量指针
//对于const double *const pip从右往左理解:pip 是 常量指针 指向 双精度浮点型常量
const double *const pip=π
4.顶层const
a.顶层const:指针本身是个常量
b.底层const:指针所指的对象是个常量