const int a=1;
const int& const b=a;
顶层const:表明const修饰的变量是常量
底层const:表明引用或指针指向的对象是常量
顶层const在函数匹配中会被忽略,如下:
//顶层const被忽略,编译会报错,函数f1已经定义了一个函数体
void f1(int a){}
void f1(const int a){}
//正确,是重载函数
void f1(int &a){}
void f1(const int &a){}
int a=1;
const int b=1;
//顶层const被忽略
int c=b;//可以用一个const int 给一个int赋值
const int d=a;//可以用一个int给一个const int赋值
编译器会自动进行非const引用/指针到const 引用/指针的隐式转换。
PS:parameter是形参,argument是实参!