C++里面const 放在哪里是个很容易混淆的。
一般有:
- const char *a="abc";
- char *const b="def";
const 就近原则
(一)
- const char *a = "abc";
- char *a="abc";
所以
- const char *a = "abc";
- a[0]='e';//是错的,不能改变a指向的地址中的内容
- a="def";//是对的,能够改变a指向的地址
(二)
- char * const b = "def";
所以,指针b不能被更改,也就是说不能指向别的地址。
- char * const b ="def";
- b[0]='a';//是对的,指针指向的内容是可改变的
- b="abc";//是错的,指针的指向不能被改变
总结:
(一)写代码要注意const的位置,希望我总结出来的就近原则能帮助你记忆。
(二)写代码能不改变的尽量const,比如说传入的参数,比如说C++的常引用,这对数据的安全性有好处。