const对象定义的时候必须初始化。“指向const对象的指针”定义的时候可以不初始化,因为指针本身不是const,可以让指针指到另一个对象。“const指针”定义的时候必须初始化,因为它是常量。
const double dvall = 3.15;
const double *cpd;
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
Code
const double val1 = 3.15;
double val2 = 5.55;
const double *cpd;
//double *const cp = &val1; //error: cp是const的指针,不是指向const对象的指针,所以不能指向const对象val1。
double *const cp = &val2; //right:cp是const的指针,必须在定义的时候初始化
const double *const ccp = &val1; //ccp是指向const对象的const指针,必须定义的时候初始化。
double d = 5.6;
const double *me = &d; //error: 编译器提示:“const double *”与“size_t”的间接寻址级别不同
int inte = 5;
const int *pp = &inte; //right