const 出现在*号左边,表示被指物是常量,如果出现右边,表示指针自身是常量
char greeting[6] = "hello";
char *p = greeting; //指针可修改,数据可修改
const char* p = greeting; //修改指向,不能修改数据 error(p[0] ='c')
char* const p = greeting; //不能修改指向,可以修改数据 error(p = pt)
const char* const p = greeting;
p2 =(int*)p1; //ok,强制类型转换
函数参数为常量指针时,可避免函数内部不小心改变参数指针所指地方的内容
void MyPrintf( const char *p)
strcpy( p,"this");//编译出错
可以用对象的常引用作为参数,如class Sample
void PrintfObi( const Sample &o)
这样函数中就能确保不会出现无意中更改o值的语句了。