怎样记忆const char*, char const*, char* const的区别

  不得不说,const char*, char const*, char* const 是个令c++初学者头疼的问题,那么,有什么相对容易的方法区分和记忆这三者么?

  如果你读过Bjarne的《The C++ Programming Language》,就应该接触过他所提到的办法,把*读成"pointer to(指向)",同时声明从右向左读。解释如下: 

 

char * const p; // p is a const pointer to char; p是指向char的常量指针(char不是常量)

char const * p; // p is a pointer to const char;  p是指向常量char的指针(p不是常量)

const char * p; // 同上。因为C++标准规定,const关键字放在类型或变量名之前等价的。C++里面没有const*的运算符

  

  也可以理解为,可以用*做分界符,const靠近那侧,它本身就是常量。例如, char * const p; const靠近p,于是可以确定p是常量指针,而它指向的内容可变。

 

参考:http://www.91linux.com/html/article/program/cpp/20080101/9442.html 

posted @ 2009-10-18 23:25  Holynn  阅读(1005)  评论(0编辑  收藏  举报