上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.1.3 再问一次:什么是变量
前面从内存单元的角度阐释了变量的概念,旨在让大家理解变量在计算机内部的物理实现方式,为后面更加深入的学习奠定基础。不过如果从程序逻辑的角度看,其实我们早在学习程序设计之前,就已经接触过变量的概念,因为代数这门课程用到的就是“变量”,比如在函数 y=3x+2中,x被称为“自变量”,而y则被称为“因变量”。
x和y的共同特征是可以代表任意一个数值。换言之,x和y只是一个名字,而它们的值可以随需而变,任意赋值。这就是把它们称为“变量”的原因所在。
更进一步来说,对于y=3x+2这种代数式,只要我们为x指定一个数值,就能够按照规定算法计算出对应的y。换句话说,给这个式子输入一个x,就能输出一个y。看到这里大家是否觉得有点眼熟了呢?没错,一个程序甚至一台计算机本身,归根到底与一个代数式没有什么区别:无非就是给它输入一些数据,它就会按照指定规则输出对应的结果。比如在案例2-1中,用户在单元格C4和D4中输入的数字(时薪和本月工时)就是输入,而运行后显示在E4到G4中的数字就是这个程序的输出。而在案例2-1的程序代码中,x 等符号[2]就相当于代数式中用到的变量。从这个角度讲,一个计算机程序的执行过程本质上就是:
① 接收若干个输入数值,存入变量(如x);
② 对这些变量中的数值按规则进行计算,根据需要将变化后的数值存入不同变量;
③ 所有计算完成后,某个变量中存放的数值就是最终结果,将其输出并结束整个程序。
所以我们在本章开始讲到:从某种意义上说,计算机程序的本质就是“变量及其变化过程”。如果大家对此有兴趣,可以自行科普一下“图灵机”的知识,相信会对计算机体系的本质有更加深刻的感悟。