对于C++中的const用法的总结
C++中由于有指针的存在,所以const的限定就不仅仅是对于一个普通变量的值的限定了。个人总结如下:
const int bufSize = 1024;
上述语句是定义了一个int类型的变量bufSize,并且bufSize的值固定为1024,不能改变了。
对于一个非const变量,假设已经做了合适的声明,就可以在另外的文件中使用这个变量,代码来自C++ Primer中文版第四版:
typedef string *pstring;const pstring cstr;
请问cstr是什么类型的变量?
如果你以为是:const string* cstr;那就错了!
错误的原因在于:将typedef当做文本扩展了。声明const pstring的时候,const修饰的是pstring类型,而pstring是一个指针,所以应该相当于:
string *const cstr;
如果还没弄清楚的话,我觉得可以类比:
const pstring cstr;与const int ex;对比,后者表示ex的值不能被修改,前者也是一样,表明cstr的值不能被修改,由于pstring是指针,而如果指针的值不能被修改,就应该是const放在指针类型的后面,也即:string *const cstr;
目前就总结到这里,大部分都来源于c++ primer 第四版,然后加上一些自己的理解。