顶层const:
简单理解:
变量本身是const类型
int * const p;
int i;
底层const:
指向的位置是const
const int *p ; // 底层变量
void func(char * p) {
std::cout << *p << endl;
}
void func(char * const p) {
std::cout << *p << endl;
}
当向上面这样定义两个函数,报重定义的错误,原因是顶层const变量作为函数参数,const会被优化