打字猴:1.70041511e+09
1700415110 计算机是怎样跑起来的 6.1 要点1:了解内存和变量的关系
1700415111
1700415112 计算机所处理的数据都存储在了被称为内存的IC(Integrated Circuit,集成电路)中。在一般的个人计算机中,内存内部被分割成了若干个数据存储单元,每个单元可存储8比特的数据(8比特=1字节)。为了区分各个单元,每个单元都被分配了一个编号,这个编号被称为“地址”(门牌号码)。如果一台个人计算机装配有64M字节内存,那么就会有从0到64M(1M=100万)这么多个地址
1700415113
1700415114 因为依靠指定地址的方式编写程序很麻烦,所以在C、Java、BASIC等几乎所有编程语言中,都是使用变量把数据存储在内存中或从内存中把数据读出来。在代码清单6.1中列出了一段用C语言写的程序,用于把数据123存储变量a中,其中用/*和*/的内容是C语言的注释
1700415115
1700415116 代码清单6.1 把123存入变量a
1700415117
1700415118 char a;   /*定义变量*/
1700415119
1700415120 a=123;     /*把数据存入变量*/
1700415121
1700415122 首先看后面的注释有“定义变量”的这一行代码char a,char代表一种C语言的数据类型,该类型可用于存储1字节的整数,通过这一行代码就在内存中预留了一块空间,并为这块空间起了个名字叫a
1700415123
1700415124 对于程序员来说,并不需要知道变量a被存储到内存空间中的哪个地址上。因为当程序运行时是由操作系统从尚未使用的内存空间中划分出一部分分配给变量a的。如图6.1所示,变量是程序中数据存储的最小单位,每个变量都对应着一块物理上的内存空间。
1700415125
1700415126 图6.1 内存的物理结构以及它与程序的关系
1700415127
1700415128
1700415129
1700415130
1700415131 如果是完全不了解数据结构的程序员,说不定会通过一个挨一个地定义出若干个离散的变量来编写程序吧。要是程序可以按预期运行,那么以这种方式编程也可以。但是若还要用这种方式来实现多个数据排序的算法,就有些困难了。
1700415132
1700415133 代码清单6.2中列出了一段程序,把三个数据分别存入a,b,c三个变量中,再将a,b,c中的数据的值按降序(从大到小的顺序)排列。在排序时为了交换两个变量的值还需要用到tmp变量,程序使用if语句一对儿一对儿地比较变量的大小,并根据比较的结果交换变量的值
1700415134
1700415135 代码清单6.2 把存入的三个变量中的数值按降序排列
1700415136
1700415137 /*定义变量*/
1700415138
1700415139 char a,b,c,tmp
1700415140
1700415141 /*把数据存入变量*/
1700415142
1700415143 a=123;
1700415144
1700415145 b=124;
1700415146
1700415147 c=125;
1700415148
1700415149 /*按降序排列*/
1700415150
1700415151 if (b>a){
1700415152
1700415153   tmp=b;
1700415154
1700415155   b=a;
1700415156
1700415157   a=tmp;
1700415158
1700415159 }
[ 上一页 ]  [ :1.70041511e+09 ]  [ 下一页 ]