如何理解*

如何理解*

  const char*, char const*, char*const的区别问题几乎是C++面试中每次都会有的题目。 事实上这个概念谁都有,只是三种声明方式非常相似很容易记混。Bjarne在他的The C++ Programming Language里面给出过一个助记的方法: 把一个声明从右向左读。 


  C++标准规定,const关键字放在类型或变量名之前等价的。

 1 char ** p1; 
 2 //    pointer to    pointer to    char 
 3 const char **p2;
 4 //    pointer to    pointer to const char 
 5 char * const * p3;
 6 //    pointer to const pointer to    char 
 7 const char * const * p4;
 8 //    pointer to const pointer to const char 
 9 char ** const p5;
10 // const pointer to    pointer to    char 
11 const char ** const p6;
12 // const pointer to    pointer to const char 
13 char * const * const p7;
14 // const pointer to const pointer to    char 
15 const char * const * const p8;
16 // const pointer to const pointer to const char

参考:http://blog.csdn.net/yingxunren/article/details/3968800