常量关键词const

来源:互联网 发布:手机看淘宝实名认证了 编辑:程序博客网 时间:2024/06/08 10:07

const关键词是用来保护数据不被无意修改。

可以用const修饰符号常量。const double PI=3.14

const int i和int const i是一样的


也可以用const限定指针,但是限制指针时有几个需要注意的地方。

1 const修饰的位置

  const int* i,此时效果等同于int const *i

可以这么看,先把const去掉,那么上面分别是(int* )i 和 int (*i)、 都意味着指向int型数的指针

        但是当这么const再接近i时,则不是那么一回事了。int * const  i  这是const时修饰i的,也就是说,i里装的数据也就是内存地址是不可修改的,而此对应地址指向的 数据反而是可以修改的。

此时,i+=2  //是非法的

   *i=3  //是合法的

2 指针赋值

     将常量或者非常量数据地址赋值给常量指针是合法的,但是将常量数据地址赋给普通指针则是非法的

     因为常量指针意味着无论指向的数据是不是常量,都可以通过指针修改其具体的值。但是普通指针如果赋给常量数据的话,则可以通过指针修改常量数据,这与加const的初衷相悖,所以行不通。

当然也可以通过const来修饰数组

double num[4]={12.32,43.2, 54,6, 9.66}

const double *d=num;

*d=&num[2]  //不允许

*d=9.32        //允许


double A[3]={32,1, 54.3, 65.5};

const double B[4]={1.1, 2.2, 3.3, 4.4 };

  double  *p=A;      //合法

 *p=B[2];   //不合法

  p=&A[2];  // 合法

0 0
原创粉丝点击