const与指针

一、指向常量的指针

定义:const 变量类型 *变量;

例如

      const double pi=3.14;///////pi是个常量,它的值不能改变

      double *ptr=π//////错误:ptr是一个普通指针,可以改变ptr所指对象的值,而pi是个常量

      const double *cptr=π/////正确:cptr指向一个双精度常量

     *cptr=42;//////错误:*cptr指向的是常量,不能给*cptr赋值

      注意:指针的类型必须与其所指对象的类型一致,但是有两个例外。第一种例外情况是允许指向常量的指针指向一个非常量对象:

      double dval=3.14;

      cptr=&dval;/////正确:但是不能通过cptr改变dval的值

      和常量引用一样,指向常量的指针也指向一个变量。仅仅要求不能通过该指针改变对象的值,而没有规定那个对象的值不能通过其他方式改变。

二、常量指针

定义:变量类型 *const 变量名;

例如

     int errNumb=0;

     int * const curErr=&errNumb;/////curErr将一直指向errNumb

     const double pi=3.14;

     const double * const pip=π/////pip是一个指向常量对象的常量指针

注意:常量指针必须初始化,而且一旦初始化完成,则它的值(也就是存放在指针中的那个地址)就不能再改变。

原文地址:https://www.cnblogs.com/cynthia-dcg/p/6057177.html