const修饰符
常量的定义:
在变量前面添加修饰符 const。
1,const修饰基本数据类型构成常量。
1,const int a = 5. a是不能修改的。
2,int b = 5;
const int a = b;
b发生变化,a不会发生变化。
2,const修饰指针。
1,常量指针。 指向常量的指针。
const int a = 10; //常量
const int * p = &a; //常量指针
*p 不能被修改
p的值可以被修改
应用:strlen(const char * str); 不能对指针指向的常量进行修改,从而保护了数据
2,指针常量。 指针本身为常量,只能指向固定的位置。
int a = 10,b = 20;
int *const p = &a;
p是不能修改的
*p可以修改
3,指向常量的指针常量。指针指向了常量,指针本身也是常量。
const int a = 1,b = 2;
const int * const p = &a;
p不能修改
*p也不能被修改
3,const修饰引用。
int a = 10;
const int & ra = a;
ra = 5; //error
a = 5;
const修饰引用,const修饰的引用变量不能被修改,a的值可以被修改。
使用场景,一般用在函数的形参的传入过程中。void fun(const string& s); 其中s是不能修改的。
4,const修饰类成员变量
类中定义了const类型的变量,只能在类的初始化列表中初始化。不能在构造器中初始化。
5,const修饰类成员函数
1,const修饰成员函数,要放在函数的后面。
2,const修饰成员函数,可以访问任意成员变量,但是不允许修改数据成员。
3,cons修饰成员函数,只能访问const成员函数
6,const修饰的类,可以访问任意有访问权限的成员变量,但是只能调用有访问权限的const成员函数