C++ const char*与char* const
C++里的const char*和char* const一直很容易混,其实只要理解了const到底修饰的哪个,就会豁然开朗。或者就按书中所写的,倒着读来记忆。
const char *p —> p是一个指针,指向const char
char* const p —> p是一个常量,指向char的指针常量
代码示例:
char a = 'a';
char b = 'b';
const char *p = &a; //p是一个指向const char的指针,因此p可变,但是*p不可变
p = &b; //正确
*p = 'c'; //错误
char* const p = &a; //p是一个指向char的常量指针,因此p不可变,*p可变
*p = 'c'; //正确
p = &b; //错误
const char* const p = &a; //p是一个指向const char的常量指针,p不可变,*p也不可变
p = &b; //错误
*p = 'c'; //错误
//举个例子
const char *p = "abc"; //p指向一个字符串,p可变,但*p不可变
p = "ddd"; //正确
*p = 'd'; //错误