const常量详解

    相信不少C++程序员都有过被const折腾的经历吧。特别像指向常量的指针,指针常量,指向常量的指针常量这些概念,记住两天就忘。今天我准备来系统总结下const的用法,说得不好,也请各位大神多多指教。

    C++引入常量这个概念,其实主要是出于安全性的考虑。相对于C里面的#define宏定义,const有了类型,也有利于编译器做检查,把一些错误在编译阶段就给我们指出来。

    常量,说得通俗一点就是一个不能被改变的量,大家只要使用时一直记住这个定义,应该能对const有一个比较清晰的理解。

    首先,我得说下前面的三个概念,指向常量的指针,指针常量,指向常量的指针常量。

    指向常量的指针,这个应该比较好理解,就是一个指针,它指向一个常量,所以我们不能修改这个指针指向的内容,但是指针的指向是能够改变的。它的定义是 const int* p; 和 int const *p;

    指针常量,相对于指针变量,就是我们不能改变指针指向,即指针的值(地址)被绑定了,不能修改,但是我们仍旧能够修改指针指向的内容。它的定义是int* const p;

    指向常量的指针常量,就是我们不能修改指针的指向,也不能修改指针指向的内容。它的定义是 const int* const p;

tips:

    这几个东西的定义比较容易混淆,我觉得有一个窍门比较好记,就是看const修饰的是谁。例如const int* p跟int const *p;const都是修饰*p,这说明我们不能修改*p,但是能修改p,即指向常量。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值