1 const分顶层const,底层const
2 顶层const可以表示任意类型的对象是常量。eg:
const int i;i是一个整型常量
int *const ccc;ccc是指向不变的指针
3 底层const只能用来指示指针,引用等复合类型所指向的变量是常量
const int *aaa;aaa是一个指针,不能通过aaa改变它所指向的变量的值
const int &bbb;bbb是一个引用,不能通过bbb改变它所引用的变量的值
4 弄清出一个const声明语句的含义最行之有效的方法就是从右往左看,eg:
const int *const ddd;
ddd与const相邻,所以ddd的值一旦初始化就不能改变,这是一个顶层const,最左边的const是一个底层const,不能通过ddd改变它所引用的变量的值
const int eee; 等价于int const eee;
5 不同变量的拷入拷出:
顶层const对拷入拷出没有影响
当拷出的变量是底层const时,考入变量也必须是底层const变量;当拷出的变量不是底层const时,考入变量没有要求