typedef char * pStr;
const pStr p2 = "abcd";
p2++;
答案与分析:
其中p2为const,所以p2++;导致编译错误。
char *p = "i'm hungry!";
p[0]= 'I';
答案与分析:
上面的代码可能会造成内存的非法写操作。
const int nValue; //nValue是const
const char *pContent; //*pContent是const, pContent可变
const (char *) pContent;//pContent是const,*pContent可变
char* const pContent; //pContent是const,*pContent可变
const char* const pContent; //pContent和*pContent都是const
const和指针一起使用是C语言中一个很常见的困惑之处,判断原则:沿着*号划一条
线,如果const位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于*的右侧,const
就是修饰指针本身,即指针本身是常量。
在C++中,const对象只能调用const成员函数。