const变量
第一:修饰常用类型(例如:const int 或者 int const 两种写法都可以),表示变量的值是不可以改变的。
第二:修饰指针。
①const在* 的前面(例如:int const * 或者 const int * 两种写法都可以可以不用初始化(只有这两种可以不用初始化)),表示指针所指向的数据是不可变的(这里是指不可以通过指针来修改变数据,但是可以通过变量名来修改数据),指针空间所存储的地址是可以改变的。
②const在*的后面(例如:int * const),表示指针是特定指向的,指针空间所存储的地址是不可以改变的,指向的数据空间的数据是可以改变的。
③ *的前后都有const (例如:const int * const 或者 int const * const)表示指针空间存储的地址以及指向空间存储的数据都不能被改变。(即综合上述的两种情况)
const函数参数
当const修饰函数形式参数的时候,表示实参传递给形参后,形参的值可以读取但是不能被改变。
const函数返回值
const修饰返回的指针或者引用 保护返回的指针或者引用所指向的数据不能通过指针或者引用来修改不被修改,只能赋值给const同类型的指针或者引用。
函数运行完释放空间所以值变了
和常变量指针一样,不可以通过指针或者引用来修改
const成员函数,成员变量,对象
const成员函数只能读取成员变量不能改变成员变量的值。
const成员变量只能被读取不能修改的。
const对象只能调用const成员函数,可以读取对象所有成员变量,但不能修改。
编译器:code::block