const常见问题

来源:互联网 发布:中俄边界知乎 编辑:程序博客网 时间:2024/05/04 11:02

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成员函数。