常量关键词const

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值