现在的位置: 首页 > 综合 > 正文

const char*, char const* and char *const

2014年03月23日 ⁄ 综合 ⁄ 共 602字 ⁄ 字号 评论关闭

char   const   *p指针p所指的内容不能改   
char * const p指针自己的内容不能改   
如:   
char   str   =   'j';   
char   str2   =   'f';   
char   const   *p   =   &str;             
*p   =   'q';           //不能改   
p   =   &str2;         //可以   
char   *   const   m   =   &str;   
m   =   &str2;         //不能改   
*m   =   'e';           //可以

const char *p 与 char const *p是等价的,表示指针指向的内容是不变的!   
而char   *   const   p   是表示指向P的指针值是不可变的!~!   
可以这样记:   
const   在*之"前"表示内容不变   
const   在*之"后"表示指针不变

char  * const cp; ( * 读成 pointer to ) 
cp is a const pointer to char 

const char * p; 
p is a pointer to const char; 

char const * p; 
同上因为C++里面没有const*的运算符,所以const只能属于前面的类型。 

``const char *p" (也可以写成 ``char const *p") 声明了一个指向字符常量的 指针, 因此不能改变它所指向的字符; ``char * const p" 声明一个指向 (可变)字符的指针常量, 就是说, 你不能修改指针。 

抱歉!评论已关闭.