const和指针的那些事
写过一篇关于c++中const的总结,这里详细总结一下const和指针之间的关系
首先我们看一段代码,就是字符数组的初始化问题
#include <iostream>using namespace std;int main(){ const char *const cocptr = "const pointer to const object"; cocptr[0] = 'C';//error char t[] = "another string"; cocptr = t;//error return 0;}另外要注意:
指针常量的申明:const 放在* 和指针名之间 Type* const pointer ;
常量指针的申明:const放在类型说明符之前 const Type* pointer ;
我们可以这样记忆: type* 为指针 ,const为常量 , type* const是指针常量,const type*是常量指针 详见《c++ primer》p180
最后加上我的理解,为什么c/c++中要用这个const,因为这和数据的属性有关,有些数据可变,有些不可变,在程序的运行中这都是未知的,如果我们想要以可预见的方式控制程序的流程和数据的变动,就需要这种常量关键字的机制