C++ const基础
常量声明
const type expr=value;
type const expr=value;
以上两种声明对于整数类型,实数类型,字符类型,布尔类型以及自定义的类有效。
对于指针
但是,对于指针,可就不是这样了。
const type* ptr=&expr;//可以修改指针所指的地址,但是不可以通过指针修改指针所指的值。通常被称为底层const
type* const ptr=&expr;//可以通过指针修改指针所指的值,但是不可以修改指针所指的地址。通常被称为顶层const
两者是有区别的。
当然,如果指针本身是不可变的,也不能修改指针所指的值,那就:
const type*const ptr=&expr;
对于引用
引用只能绑定一个变量。
引用在被定义的同时就必须被绑定到一个变量上。
所以,引用本身是不可更改的。
因此,引用所绑定的值是否可以改变视声明而定。
type&expr=value;//可以通过引用改变变量的值
const type&expr=value;//不可以通过引用改变变量的值