const修饰指针的时候,const放在什么位置有没有关系?比如说下面两条语句:

char * const charPtr = &c;
const char *charPrt = &c;

这两条语句的意思是一样的么?


 
该问题和http://ilewen.com/questions/280基本上是一样的! –  无核白 6年前  
该问题和http://ilewen.com/questions/280基本上是一样的!

2个回答

char * const charPtr = &c; 表示指针的地址不允许改变

const char *charPrt = &c; 表示指针指向的内容不允许改变

指针有一个左值和右值的概念,一个是指向的内容,一个是自己的地址


两句的意思是不一样的:

char * const charPtr = &c;

表明指针本身不会被改变,这种情况下下面的语句是不合法的:

charPtr = &d;

而对于:

const char *charPrt = &c;

表明指针指向的单元的内容不会被改变,这种情况下下面的语句是不合法的:

*charPtr = "x";