1.顶层const和底层const

const修饰的对象本身是常量,则为顶层const,否则为底层const

如:

const int a=10;        //a是int常量,顶层const

int *const b=nullptr;   //b为指向int 类型的常量指针,顶层const

const int *c=nullptr;   //c为指向const int 类型的指针,指针c所指对象为常量,指针c本身不是常量,底层const

2.注意点

下面两种情况下,p是常量指针,而不是指向常量的指针,等价于char *const p=nullptr,而不是const char *p=nullptr;

  • typedef char* type;

const type p=nullptr;

  • constexpr char *p=nullptr;

3.对const的引用

可以用任意类型的表达式作为初始值,但即使用非const变量初始化,也不能通过引用名修改绑定对象的值

int i=42;

const int &a=i;   //ok,但不能通过a修改i的值

const int &b=42; //ok

const int &c=a*2;  //ok

但普通变量不能对const引用

const int a=1;

int &b=1;   //error

4.指向const的指针(底层const)

和引用一样,指向const类型的指针可以用同类型的const和非const初始化

如:

const int i=10;

int j=10;

const int *a=&i;   //ok

a=&j;    //ok

但指向非const的指针只能用同类型的非const初始化

如:

const int i=10;

int j=10;

int *p=&j;   //ok

p=&i;      //error

5.常指针(顶层const)

int i=10;

const int j=10;

int k=10;

int *const p=&i;          //ok

*p=12;                    //ok,p指向的对象不是常量,可以改变

*p=j;                 //error,p是指向int型的,而不是指向const int类型的

p=&k;               //error,p本身是常量,其值不能改变

最新文章

  1. yum
  2. 解决dropdownlist postback 在 iphone UIwebview 失效的问题
  3. Metaspace 之二--Java 8的元空间(metaspace)、metaspace监控方法
  4. maven系列之一maven安装和与IDE集成
  5. 让PV10000+的秘诀
  6. Nohttp网络请求数据,Post以及Get的简单实用以及设置缓存文字的的请求
  7. jQuery实现表格行的动态增加与删除
  8. ARM linux解析之压缩内核zImage的启动过程
  9. windows phone 模拟器
  10. [.Net跨平台]部署DTCMS到Jexus遇到的问题及解决思路---部署
  11. FFPLAY的原理(二)
  12. 权限管理——shiro
  13. Spark源码剖析 - SparkContext的初始化(七)_TaskScheduler的启动
  14. Cannot retrieve metalink for repository: epel 错误解决办法
  15. at android.view.LayoutInflater.createViewFromTag的错误原因
  16. [ SHELL编程 ] 文件内容大小写替换
  17. python3 提示 name ‘reload’ is not defined
  18. UART, SPI, IIC的详解及三者的区别和联系
  19. Python locale error: unsupported locale setting
  20. SharePoint 创建 Lookup 类型的Site Column解决跨站问题

热门文章

  1. entOS查看系统信息-CentOS查看命令
  2. MVC基础(很基础很基础~~~)
  3. (转)优化js脚本设计,防止浏览器假死
  4. Android点击其他任意位置收起软键盘
  5. opensuse pptp拨号设置注意事项
  6. java中vector与hashtable操作详解
  7. [Android开发系列]IT博客应用
  8. Swift数据类型及数据类型转换
  9. css3 画x图形
  10. js 函数的调用模式