参考:http://www.cnblogs.com/tibetwolf/articles/1785744.html

1.const修饰可能会优化编译代码。关于这一点与编译器密切相关,由于变量被const修饰后其内存大小和位置是确定的

2.

简单说,一个const修饰的变量被改变意味着我们需要的是一个“变量”而不是一个“恒定的、不可修改的”的“常量”。
    仔细观察下列定义:
    I const AConst = 2;
    II const AModifiedConst: integer = 3;
    可以发现,I中const修饰的是“2”, II中const修饰的是Integer;除了语义上的约束强调外,I强调了值2不可改变,II强调了类型Integer不可更改。const修饰符是“左结合”操作符。准确的说,这就是Pascal编译器对const的理解。所以,当使用{$J+}和{$J-}编译指令时,I不会发生改变,II会。

补充:

任何变量都是一个内存块,从某种程度上说,const修饰实际上是修饰这个内存块,这种修饰强调两点:1,内存块位置和大小不可以改变;2,内存块内容不可以改变。当仅仅强调1时就是“静态变量”的情况,当二者同时强调时,就是上面I所对应的情况。所以,就我个人而言,我更倾向于Pascal所使用const语义而不是C中使用“静态变量”语义,后者似乎缺少某种一致性,增加了概念。

3.、const是什么?
      const是一个修饰词,来源于英文constant,意思是“常量、恒量、不变的” 的意思。注意!const是一个修饰词,代表一种约束(可能是语义上的,也可能是语法上的),不是“常量”!简单说,“const”不等价“常量”。“常量”是一个名词,const不是!

最新文章

  1. selenium 使用action进行鼠标,键盘操作
  2. Jquery、简单的下拉列表、网页左部导航菜单
  3. 使用css使textbox输入内容自动变大写
  4. Vector和Stack(已过时,不建议使用)
  5. JAVA学习Swing章节流布局管理器简单学习
  6. 机器学习 —— 决策树及其集成算法(Bagging、随机森林、Boosting)
  7. Java - 选择性排序 PHP || Java 代码对比
  8. Linux&shell 之Linux文件权限
  9. CSS学习笔记——盒模型,块级元素和行内元素的区别和特性
  10. Keil - 编译错误总结 01
  11. linux下搭建SVN服务器完全手册-很强大!!!!!
  12. 根据相同的字段创建或者修改一个Model
  13. debian The type initializer for 'System.Drawing.KnownColors' threw an exception
  14. centos 7 进入图形界面
  15. 激光三角法点云重建分享——halcon 方法
  16. 高级shell 脚本
  17. php优秀框架codeigniter学习系列——CI_Security类学习
  18. 3Sum(or k_Sum)
  19. hdu 1251 统计难题(字典树)
  20. js replace全部替换的方法

热门文章

  1. LigerUI权限系统之角色管理
  2. 杨氏矩阵查找元素位置Java实现
  3. 使用dom4j解析xml文件
  4. 获取EditText的光标位置
  5. 记一次修复被篡改的IE首页
  6. ios-制作静态.a文件
  7. php 写商城网站的总结吧
  8. xhtml头文件设置
  9. action = "#" 是什么意思 在HTML语言中
  10. 话说Angularjs的$resource模块