c++ 中 常量修饰符const 和与指针的组合情况

1.指向常量的指针:

  是指一个指向常量的指针变量。

  例如:const char * p = "abcd";

    由于使用了const,不允许改变指针所指的常量,因此 p[3] = 'x';  是错误的;

    但由于p是一个指向常量的普通指针变量,不是常指针,因此可以改变p的值,即 p = "aaaa"; 是对的。

 

2.常指针:

  是指指针本身,而不是它指向的对象声明为常量。

  例如:char * const p = "abcd";

    含义是:声明一个名为p的指针变量,该指针是指向字符型数据的常指针,用字符串abcd的地址初始化该常指针。

    创建一个常指针,即创建一个不能移动的固定指针,但它所指的数据可以改变。即 p[3] = 'x'; 是对的,p = "aaaa"; 是错误的。

 

3.指向常量的常指针:

  是指指针本身不能改变,且所指的值也不能变。

  例如:const char *  const p = "abcd";

     含义是:声明一个名为p的指针变量,该指针是指向字符型常量的常指针,用字符串常量abcd的地址初始化该常指针。

    即 p[3] = 'x'; 和p = "aaaa"; 均错。

posted @ 2017-02-22 10:49  阿树先生  阅读(211)  评论(0编辑  收藏  举报