C++中, const限定符把一个对象转换成一个常量
const int bufSize=512;
const int i,j=0; //eror ,i 必须要初始化
用const 替代#define的值替换功能
const的最初动机是取代#define的值替换功能,它还通常用于指针,函数变量,返回类型,类对象机器成员函数
用const比#define有更多的优点
(1)const常量有数据类型,#define没有数据类型,编译器会对前者进行类型安全检查,后者只是对字符进行替换,没有类型安全检查
(2)使用常量可能比使用#define导致产生更小的目标代码,这是因为预处理器“盲目将宏名称BUFSIZE替换为其代替的值 100“ 可能导致目标代码出现多份100的备份,但常量就不会出现这种情况
(3)同时const还可以执行常量折叠,就是说,编译器在编译时可以通过必要的计算把一个复杂的常量变表达式缩减成简单的
指针和修饰符
指向const的指针
const double * cptr;
const指针
double a=2.2;
double * const cptr=& a;
修饰函数参数与返回值
1, const修饰返回值
2,const用来修饰函数的参数
void fun(const int i)
const在类中的应用:
1,const成员函数
2,const成员数据
常量成员(常量成员变量)必须在构造函数的成员初始化列表中进行初始化
参考《王道-程序员求职b