来自const的五花八门的用法。
用法一:
声明定义常量。
在声明且定义(必须定义)变量的时候使用const,表示这个变量被声明后不能再被改变。
eg.
const int x =10;
const vector<char> something;
测试发现在VS2013上,前一个如果不给x初始化,则报错;
后一个不初始化,不报错,但也无法使用成员函数push_back();
用法二:
同样是声明定义常量。
但是这里和指针挂上钩。
指针的出现带来了两种常量。
1. const int * variable;
int const * variable;
代表了 指向常量的指针,言下之意就是,指针指向的地址里面的内容是常量,不能被修改。
2.int * const variable;
代表了 常量指针,顾名思义,指针本身是个常量,也就是说这个指针只能指向这个内存单元,一旦被定义初始化,就不能改了。
这里可以看出,这一种定义方式必须初始化。
那么如果区分呢.
只看一个指标,那就是const是在 * 符合前面还是后面,在前面就是指向常量的指针,在后面就是常量指针。