1
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'; //错误
原文:https://blog.youkuaiyun.com/u011197534/article/details/78385542
2
int GetCount(void) const;
此处const指const的成员函数,任何不会修改数据成员的函数都应该声明为const类型。
3
“值传递”和“引用传递”的效率几乎相当,因此值传递时不需要加const;除此之外,能加const的地方尽量加const,以保持程序健壮性。