const 本作常量解释,const作为限定修饰符,将原来的变量限定不可更改。因此变量必须被初始化,未初始化的const变量,编译器会报错,同时在编译的过程中,将其放在内存中的只读区域,也可称作“只读变量”,不允许被修改。以此增加程序的健壮性。
const 变量
一旦变量被const约束,其值视为不可更改,但依然是变量。如果我们在程序中试图修改 const 变量的值,在编译的时候,编译器将给出错误提示。
在C语言中,enum类型和#define宏定义都可以用来定义常量。
const在前后位置,意义一样
const int a; 表示a是个整型常量
char* const a; 表示a是const, *a可变
const char *a; 表示*a是const, a可变
const (char *) a; 表示a是const, *a可变
const char* const a; 表示a和*a都是const
const变量作为函数参数
表示该变量是一个 const 变量。在该函数的作用域下,不能够改变该参数的值。 指向 const 变量的指针,允许使用 ”指向 const 变量的指针“ 或 普通指针 作为参数。
const 成员函数
const成员函数指的是,此函数不应该修改任何成员变量, 也不能调用类中任何非const成员函数。一般写在函数的最后来修饰。
const修饰类对象/对象指针/对象引用
用const修饰的类对象表示该对象为常量对象,该对象内的任何成员变量都不能被修改。对于对象指针和对象引用也是一样。
mutable关键字
在C++中,mutable是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态.