const 类型限定修饰符的作用:将一个对象转换成一个常量(constant)。并且该常量在定义后就不能被修改,必须定义时进行初始化。未初始化的常量定义将导致编译错误。
const对象的地址无法赋值给一个非const对象的指针,因为赋值给该指针后,通过指针对常量进行的修改,编译器无法跟踪捕获。但是可以赋值给一个指向const对象的指针。
const double* p; //一个指向double类型的const对象的指针。该指针可以重新指向别的double对象,但是其指向的double对象的值无法修改。
int * const p; //一个指向int类型的const指针。该指针不可以重新指向别的对象,但是其指向的对象的值可以修改。
感觉const是编译器编译阶段的行为。