1、修饰成员变量
int value=0; int *p=&value; const int *p_c=&value;//指针指向常量,但是指针所指向的地址可以修改(int const *p_c=&value,也是指针指向常量) int *const c_p=&value;//(常量的)指针指向变量,但是指针所指向的地址为常量,不可更改
2、修饰函数参数(经常和引用同时出现,提高传参效率,并且使得参数不可被该函数体中的算法更改)。
3、修饰成员函数。
注意:1.不能修改成员变量(除非加上mutable关键字); 2.不能调用非const成员函数(普通成员函数可修改成员变量)
4、修饰普通变量(直接当做常量使用,代替宏)。
5、宏是由预处理器处理,不会进行类型检查;const定义的常量由编译器处理,会进行类型检查。