VB/VBA的变量,竟还有这些秘密
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的变量,竟还有这些秘密相关推荐
- VB/VBA的整数,你真的了解?
前言 经过<VB的任性,从Variant开始 >.<变量,还有这些秘密 >和<VB的天地,横看成岭侧成峰 >的铺垫,似乎可以隐隐约约地感觉,VB变量背后肯定不是平常 ...
- VB/VBA,请让我点名表扬你
前言 本不想再刻意强调VB什么,怕说多了,成了误导.用与不用,其实都无需解释.但,既然在<互联的围城,已春暖花开,我却心向罗盘荒野 >中给了大家学习内化的承诺,又在<明比阅历浅,暗拼 ...
- VB/VBA中实现数据库与文件的存取
编程完成数据库与文件的数据相互存取 'VB/VBA中实现数据库中的文件存取 '示例数据库为ACCESS数据库,用SQL数据库的话,只需要改连接字符串 ' '********************** ...
- 深入了解VB中的变量和指针
前言:我们都知道,在VB中,可以使用VarPtr.StrPtr和ObjPtr来获得变量的地址,它们之间有什么区别和联系呢?许多资深的VB人员告诉我们,最好将API函数声明中ByVal lpstr As ...
- VB Environ系统环境变量函数大全
Environ ("Windir") 'c:\windows Windows 目录 Environ ("ProgramFiles") 'c:\ProgramFi ...
- Python取代VB/VBA,弄了个寂寞!
谣言终于实践,而不一定终于智者! 1.最近一直比较忙,系列文章迟迟未开工,索性抽个小空弄些VB/VBA人士关心的几个争论,算是辟个谣吧.这年头,好酒也怕巷子深,谣言也粉上智者了.但是,毛主席说,实践是 ...
- opc client for php,使用vb/vba作为OPC client
使用vba/vb做client可以使opc的访问变得简单,以下是基于excel的简单opc client代码: Option Explicit Public WithEvents MyOPCSvr A ...
- VB / VBA 自制二维码小工具
现在二维码的使用越来越广泛了,广告.网址等等都用上了 从网上找了一个二维码的控件,自己做了个小工具. 二维码可以把一串字符,不管长短(没试过最长能多长),做成二维码图片 现在的的智能手机软件很多都有扫 ...
- VBA学习(一)启用VBA、变量、常量、静态变量、字符串拼接、循环语句与判断语句
目录索引 在Excel中启用VBA 变量的强制声明 静态变量 静态变量值消失的情况 常量 循环语句 FOR循环 Do While循环 Do Until循环 Do--Loop While循环 IF判断语 ...
最新文章
- 多语言互通:谷歌发布实体检索模型,涵盖超过100种语言和2000万个实体
- 05年之前我的程序员生涯
- PDF 补丁丁 0.5.0.2078 测试版发布:不用打字,也能加书签
- 以太经典(ETC)逆势上涨,将逆袭反超以太坊(ETH)?
- python有哪些作用-你都用Python来做什么,它对你来说有什么作用?
- oracle gsd,晕死:11203GSD死活起不来
- 公司内部图书管理界面原型设计图
- 约瑟夫环问题---循环单链表
- 你选书我买单,包邮送50本!《R语言实战》或者任何什么书都可以!
- 【语音识别】基于matlab带动量项的BP神经网络语音识别【含Matlab源码 430期】
- 【ML小结5】决策树(ID3、C4.5、CART)
- 惠普暗影精灵3清灰_惠普暗影精灵15评测:速度超快,价格适中|但问题却不少...
- MySql数据库的安装,mysql-5.5.28-winx64.msi
- 使用python 生成二维码 中间带logo
- RTI_DDS使用参与者QoS属性编辑传输TCP
- python11_python11:函数
- 计算机英语中文参考书,推荐几本计算机英语书?
- Java分布式锁那点事
- 微信打开网页 提示防诈骗
- MindMaster思维导图国内版更名“亿图脑图MindMaster”国产软件加速崛起!