const 作用:
1、可以定义const常量
2、便于进行类型检查
3、可以保护被修饰的东西
4、可以很方便地进行参数的调整和修改
5、可以节省空间,避免不必要的内存分配
6、 提高了效率
const 修饰普通类型的变量
代码格式:
//两种形式无区别
//要初始化
const int a = 1;
int const b = 2;
此时变量a的值不可改变
const 修饰指针变量
1、只有一个const时 如果const位于*左侧,表示指针所致的数据是常量,不能通过指针修改数据,
指针是变量,可以指向其他内存
const int * p = #
2、只有一个const时 如果const位于*右侧 表示指针是常量,不能指向其他内存单元,可以修改指针指向的数据
int * const p = #
3、如果*左右都有const 指针和数据都不可改
int const * const p = #
在参数传递中使用CONST
1、传递过来的参数在函数内不可以改变(无意义,因为Var本身就是形参)
void function(const int Var); //传递的是副本,副本的值不可改变(副本的值不影响原来的值)
2、参数指针所指内容为常量不可变
void function(const char* Var); //const在*左边 即指向的地址不变
3、参数指针本身为常量不可变(也无意义,因为char* Var也是形参)
void function(char* const Var);//const在*右边 即指向的地址的内容不变
4、参数为引用,增加效率同时不能修改引用对象的任何成员
void function(const Class& Var); //引用参数在函数内不可以改变
void function(const TYPE& Var); //引用参数在函数内为常量不可变
函数返回值使用const
const修饰函数返回值其实用的并不是很多,它的含义和const修饰普通变量以及指针的含义基本相同。
//这个其实无意义,因为参数返回本身就是赋值。
const int fun1()
//调用时 const int *pValue = fun2();
//我们可以把fun2()看作成一个变量,即指针内容不可变。
const int * fun2()
//调用时 int * const pValue = fun2();
//我们可以把fun3()看作成一个变量,即指针本身不可变。
int* const fun3()