const修饰变量
const修饰变量,使得变量具有常量属性,即被const修饰的变量一旦定义将不允许再次修改其值,这也就要求使用const修饰变量时,需要对变量进行初始化
const修饰函数形参
将只允许函数内部对形参进行读操作,而不能写操作
const修饰函数返回值
即函数返回值为常量,不允许再度修改,那么接收返回值的变量也需要具有const属性
const与指针
const离谁近修饰谁,修饰时需要判断其修饰的完整类型
const int* const p1 = &x;//指针指向不可改,指向内容不可改
const int* p2 = &x;//指针指向可改,指向内容不可改
int const* p3 = &x;//指针指向可改,指向内容不可改
int* const p4 = &x;//指针指向不可改,指向内容可改
const修饰类成员函数
被const修饰得类成员函数,称为常方法。常方法只能调用常方法,且不可修改除static成员之外的变量,但非const修饰的成员函数可以调用常方法
const修饰类成员变量
被const修饰的类成员变量,需要在构造函数的初始化列表中初始化,之后不可再次修改
const和#define的区别
const修饰的变量存储于常量区,只会在第一次分配一次空间,永久使用。如果使用#define定义的宏,则每次都会分配内存。相较之下,const更省空间
const和extern
const修饰的变量只能在该程序的本文件中使用,不能在该程序的其他文件中使用。 要想const定义的对象变量能被其他文件调用,定义时必须使用extern修饰;
const对象
const对象只能调用const方法