1.作用于变量:修改变为只读常量,不可更改。
2.作用于函数形参:表示该形参在函数运行时,只读,不可更改
3.作用于类的成员函数:表示在该成员函数内,参数都不可更改
4.作用于指针:如:int const *p;定义为了常量指针,int * const p的话,定义为了指针常量
5.修饰函数的返回值:如果这个函数的返回值为指针类型的话,那么只能赋值给同样是const的指针类型,因为类型匹配;而如果是一个普通的返回值,则没有加const的必要,因为其本身函数运行结束,生命周期也就结束了
6.节省内存:比如你定义了之后他先是没有存放进只读存储器的,第一次当右值赋值的时候分配内存,之后不再分配,而#define的话是要替换开内存的。