打字猴:1.7004151e+09
1700415100 计算机是怎样跑起来的 本章重点
1700415101
1700415102 在第5章中曾经这样介绍过算法:程序是用来在计算机上实现现实世界中的业务和娱乐活动的,为了达到这个目的,程序员要结合计算机的特性,用程序来表示现实世界中对问题的处理步骤,即处理流程。本章的主题是数据结构,也就是如何结合计算机的特性,用程序来表示现实世界中的数据结构。
1700415103
1700415104 程序员有必要把算法(处理问题的步骤)和数据结构(作为处理对象的数据的排列方式)两者放在一起考虑。选用的算法和数据结构两者要相互匹配这一点很重要。本章会依次讲解以下3点:数据结构的基础、最好先记忆下来的典型数据结构以及如何用程序实现典型的数据结构。范例代码全部由适合于学习算法和数据结构的C语言编写。为了让即使不懂C语言的读者也能读懂,会采取简单易懂的说明,所以请不要担心。另外,为了易于理解,文中中展示了程序中的核心片段,省略了错误处理等环节,这一点请谅解
1700415105
1700415106
1700415107
1700415108
1700415109 计算机是怎样跑起来的 [:1700412670]
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 /*按降序排列*/
[ 上一页 ]  [ :1.7004151e+09 ]  [ 下一页 ]