const:
1、修饰成员变量:
(1)定义常量:
const int x :定义一个int类型的常量
const int *p :定义一个指向int类型的常量指针,即指针指向的数据是常量,指针是变量,可以指向其他的内存地址。
(2) 修饰指针:
int * const p :表示指针本身是一个常量,不能指向其他的内存地址,指针所指的数据可以通过解引用进行修改。
int const * p :表示指针指向的数据是常量,不能通过解引用进行修改,指针本身是变量,可以指向其他的内存地址。
int const * const p :表示指针本身和指针指向的数据均为常量,都不能修改。
2、修饰函数的参数:
返回类型 函数名(const 参数类型 参数),例如:void fuc(const int x)
传递过来的参数在函数内不可以改变(即,传递过来的参数是一个int类型的常量)。
3、修饰成员函数:
返回类型 函数名(参数表)const {函数体},例如:int fuc(int x ,int y) const {...}
(1)修饰成员函数时,不能改变成员函数的任何参数
(2)const成员函数不能调用非const成员函数,因为非const成员函数可以修改成员变量
4、修饰函数的返回类型:
(1)指针传递:如果返回const data,non-const pointer,返回值也必须赋给const data, no-const opinter.因为指针指向的数据是常量不能修改。