分享

const 指针与指向const的指针

 torony 2017-11-22

  const指针是指针变量的值一经初始化,就不可以改变指向,初始化是必要的。其定义形式如下:

type *const 指针名称;

  声明指针时,可以在*前或后使用关键字const,也可在两个位置都使用。例如,下面都是合法的声明,但是含义大不同:

const int * pOne;    //指向整形常量 的指针,它指向的值不能修改

int const * pOne;    //等同于const int * pOne;

int * const pTwo;    //指向整形的常量指针 ,它不能在指向别的变量,但指向(变量)的值可以修改。 

const int *const pThree;  //指向整形常量 的常量指针 。它既不能再指向别的常量,指向的值也不能修改。

理解这些声明的技巧在于,查看关键字const在*号的前面还是后面 ,如果const在*h前面,则值是常量;如果const在*后面,则指针本身是常量。下面的代码有助于说明这一点:

const int *p1; 等效于 int const *p1;//the int pointed to is constant

int * const p2; // p2 is constant, it can't point to anything else
直观的理解为当const在*前面时,*和指针一起表示值,所以值为常量。当const在*
后面时,*和指针分离,const只修饰指针,所以指针为常量,值可以改变。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多