1、变量的意义

任何一门高级开发语言,都离不开变量。通过变量,编程语言才能搬运和表达我们的小心思。变量是机器指令语义化的第一步,却是高级开发语言进化的一大步。

2、变量的起源

在计算机编年史里的蛮荒时代,人们饱受01的折磨。要完全按这二维空间的逻辑,估摸要一万年才能解释人类三维的世界。于是,人们就在思考,能不能弄个2.25维度的,给这货长长智商呢?高维度解释低维度还不容易,要想跟人混,没名不行,那就从取名儿开始吧。

硬件取名,比如EAX、EBX、ESP、EBP等寄存器。操作取名,比如MOV,ADD等。计算的核心部分搞定,都有名了,随叫随到。但是,存储就不好办了,位置多,还变化多端。都有名,也记不住,等于白瞎。

好在那时候的卡带,都是线性的。无非前后位置的偏移,数数手指头就能搞定。但老数手指,拉低智商不说,关键是没法甩锅啊。更何况位置偏移,成了少数场景。硬件都可取名,为何少数的偏移位置不可取名。

3、变量的诞生

指令位置的偏移有了标签名,通过标签名来代替具体的地址,大大提高了编码的自动化水平。在BASIC的前身DOPE中,进一步使用行号,标记特定代码位置,并用[T]进行跳转,这便是后来饱受争议的GOTO语句的原型。这里也可看出VB血脉的古老,竟然直接保留了机器码时代的痕迹。

如果说机器指令的助记符,是最早的固量,那么标签名就是最早的变量。

4、变量的现代演化

变量几乎是任何一门编程语言里,首先要学习的概念,否则无以为继。大家用变量装着整数、小数、日期、字符串等,进行着计算、合并等。凡此种种,忙得不亦乐乎,变量早已不是当初简单的标签号,而是被封装进化到了2.5维,成为更高级的基础。

很多高级编程语言的用户,对变量就像数字的123一样,更多的是无需细究的理所当然。但从变量的起源来看,它的封装特性,无疑是源远流长的。它与内存千丝万缕的关系,是我们掌握指针和内存管理的关键。

各大语言都会对变量进行封装,而基本逻辑几乎都是一致的,这对于跨语言的理解也非常有帮助。

5、变量是最便捷,最高效,也是最安全的内存管理器

声明变量,这在任何一门编程语言中,都是最简单的。通过变量的声明,就可以获得内存空间,是最便捷的。非全局和静态变量都在栈上开辟内存空间,因而是最高效的。变量都是有作用域的,脱离作用域,变量就会被释放,因而是最安全的。

善用变量来操作内存,可大大降低编程语言的使用门槛。比如无需培训,非职业IT就可使用VB。经过简单培训,有一定基础的人就可以使用JAVA。

6、变量开疆拓土在先,指针精打细算在后

变量对于内存而言,兼具分配和管理,是指针实例化的前提。没有指针,变量一样完成任务。但有了指针,变量打下的江山,才会更精致。变量像大大咧咧的男人,不够就扔了,重新来个,拿得起放得下。指针像持家的小媳妇,这也舍不得,那也舍不得,不讨好的下场很凄惨。唯有二者商商量量,各有分工,编程的家庭才会越来越殷实。

VB/VBA的变量,竟还有这些秘密相关推荐

  1. VB/VBA的整数,你真的了解?

    前言 经过<VB的任性,从Variant开始 >.<变量,还有这些秘密 >和<VB的天地,横看成岭侧成峰 >的铺垫,似乎可以隐隐约约地感觉,VB变量背后肯定不是平常 ...

  2. VB/VBA,请让我点名表扬你

    前言 本不想再刻意强调VB什么,怕说多了,成了误导.用与不用,其实都无需解释.但,既然在<互联的围城,已春暖花开,我却心向罗盘荒野 >中给了大家学习内化的承诺,又在<明比阅历浅,暗拼 ...

  3. VB/VBA中实现数据库与文件的存取

    编程完成数据库与文件的数据相互存取 'VB/VBA中实现数据库中的文件存取 '示例数据库为ACCESS数据库,用SQL数据库的话,只需要改连接字符串 ' '********************** ...

  4. 深入了解VB中的变量和指针

    前言:我们都知道,在VB中,可以使用VarPtr.StrPtr和ObjPtr来获得变量的地址,它们之间有什么区别和联系呢?许多资深的VB人员告诉我们,最好将API函数声明中ByVal lpstr As ...

  5. VB Environ系统环境变量函数大全

    Environ ("Windir") 'c:\windows Windows 目录 Environ ("ProgramFiles") 'c:\ProgramFi ...

  6. Python取代VB/VBA,弄了个寂寞!

    谣言终于实践,而不一定终于智者! 1.最近一直比较忙,系列文章迟迟未开工,索性抽个小空弄些VB/VBA人士关心的几个争论,算是辟个谣吧.这年头,好酒也怕巷子深,谣言也粉上智者了.但是,毛主席说,实践是 ...

  7. opc client for php,使用vb/vba作为OPC client

    使用vba/vb做client可以使opc的访问变得简单,以下是基于excel的简单opc client代码: Option Explicit Public WithEvents MyOPCSvr A ...

  8. VB / VBA 自制二维码小工具

    现在二维码的使用越来越广泛了,广告.网址等等都用上了 从网上找了一个二维码的控件,自己做了个小工具. 二维码可以把一串字符,不管长短(没试过最长能多长),做成二维码图片 现在的的智能手机软件很多都有扫 ...

  9. VBA学习(一)启用VBA、变量、常量、静态变量、字符串拼接、循环语句与判断语句

    目录索引 在Excel中启用VBA 变量的强制声明 静态变量 静态变量值消失的情况 常量 循环语句 FOR循环 Do While循环 Do Until循环 Do--Loop While循环 IF判断语 ...

最新文章

  1. 多语言互通:谷歌发布实体检索模型,涵盖超过100种语言和2000万个实体
  2. 05年之前我的程序员生涯
  3. PDF 补丁丁 0.5.0.2078 测试版发布:不用打字,也能加书签
  4. 以太经典(ETC)逆势上涨,将逆袭反超以太坊(ETH)?
  5. python有哪些作用-你都用Python来做什么,它对你来说有什么作用?
  6. oracle gsd,晕死:11203GSD死活起不来
  7. 公司内部图书管理界面原型设计图
  8. 约瑟夫环问题---循环单链表
  9. 你选书我买单,包邮送50本!《R语言实战》或者任何什么书都可以!
  10. 【语音识别】基于matlab带动量项的BP神经网络语音识别【含Matlab源码 430期】
  11. 【ML小结5】决策树(ID3、C4.5、CART)
  12. 惠普暗影精灵3清灰_惠普暗影精灵15评测:速度超快,价格适中|但问题却不少...
  13. MySql数据库的安装,mysql-5.5.28-winx64.msi
  14. 使用python 生成二维码 中间带logo
  15. RTI_DDS使用参与者QoS属性编辑传输TCP
  16. python11_python11:函数
  17. 计算机英语中文参考书,推荐几本计算机英语书?
  18. Java分布式锁那点事
  19. 微信打开网页 提示防诈骗
  20. MindMaster思维导图国内版更名“亿图脑图MindMaster”国产软件加速崛起!

热门文章

  1. XML中PCDATA与CDATA的区别
  2. python pdf分割_Python分割PDF
  3. 元宇宙|世界人工智能大会之元宇宙论坛:设计篇
  4. PPT之幻灯片中的大纲选项卡
  5. ShowDoc在线API文档、技术文档工具
  6. w500 安装mac
  7. maven deploy
  8. PySide2 环境安装
  9. Camels【DP】
  10. 使用canvas生成一个圆形的图片