一.const关键字的意义
限制某个变量只能读而不能写,从而提高程序的健壮性。
二.使用const关键字修饰普通数据类型
通过const关键字修饰的非引用非指针类型变量,必须在定义时对其进行初始化,且初始化之后在其生命周期中值将无法改变,初始化时可以使用所有满足该类型初始化语法的表达式实现,包括同类型的const变量。
const变量与非const变量不同,const默认为static变量,而非const默认为extern变量,故若想使得const变量成为全局变量,需要显式的声明为extern。
三.使用const关键字修饰引用
const引用的使用比非const引用灵活得多,非const引用只能用非const的同类型变量进行初始化,而const引用可以可以使用所有满足该类型初始化语法的表达式实现,包括常量、同类型的变量(不论该变量const与否)、表达式等。
const引用只能读,无法写。
四.使用const关键字修饰指针
const修饰指针时,分为两种情况:
1. const int *p;//由const的左结合性可知该表达式与int const *p相同,是一个指向const int 的指针,该指针指向的变量不可修改,但是该指针本身可以修改。
2.int const *p; // 是一个const指针,指向int变量,该指针不可修改,但其指向的int变量可以修改。
五.使用const关键字修饰函数形参
const修饰函数形参时,除非该行参是指针或引用,否则无法与同类型非const形参重载,形参初始化与普通变量一致。
六.使用const关键字修饰类成员函数
用const修饰了个成员函数,在函数体内无法修改成员变量,除非该成员变量使用mutable关键字进行修饰。