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" 声明一个指向 (可变)字符的指针常量, 就是说, 你不能修改指针。
阅读(1045) | 评论(1) | 转发(0) |