- 内容提要
- 序 1:程序里的世界
- 序 2:最后一层表象
- 关于本书
- 致谢
- 引言:简单的本源
- 篇一:计算系统
- 第 1 章 数,以及对数据的性质的思考
- 第 2 章 逻辑
- 第 3 章 抽象
- 篇二:语言及其面临的系统
- 第 4 章 语言
- 第 5 章 从功能到系统
- 篇三:程序设计的核心思想
- 第 6 章 数据结构:顺序存储
- 第 7 章 数据结构:散列存储
- 第 8 章 执行体与它在执行过程中的环境
- 第 9 章 语法树及其执行过程
- 第 10 章 对象系统:表达、使用与模式
- 篇四:应用开发基础
- 第 11 章 应用开发的背景与成因
- 第 12 章 应用开发技术
- 第 13 章 开发视角下的工程问题
- 第 14 章 应用程序设计语言的复杂性
- 篇五:系统的基础部件
- 第 15 章 分布
- 第 16 章 依赖
- 第 17 章 消息
- 第 18 章 系统
- 篇六:系统的基本组织方法与原理
- 第 19 章 行为的组织及其抽象
- 第 20 章 领域间的组织
- 附一:主要编程范式 及其语言特性关系
- 附二:继承与混合,略谈系统的构建方式
- 附三:像大师们一样思考——从 UML 何时死掉 谈起
- 附四:VCL 已死,RAD 已死
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
6.4 有一个起始地址的连续区域 思路下的两种数据类型
数组(array type) 指的是包括 某种相同数据 (数组元素的类型相同)的连续空间 9 ,它是 顺序地址存储 这一概念的自然延伸 10 。首先我们认为 Byte、Word 等基础数据类型是受位宽限制的顺序地址存储,当我们把位宽限制这一条件去掉——或通过长度值来指定连续区域的大小——之后,就得到了数组的概念。由于它自然延伸了(但未改变) 顺序地址存储 的概念,因此它也可以作用于上述这些基础类型。例如:
- DWORD,等义于长度为 4 的字节数组;
- BYTE,等义于长度为 8 的位数组;
- INT64,等义于长度为 64 的位数组,或长度为 8 的字节数组,或……
基于此,我们也可以用数组这一概念来统一所有的基础类型,这最终可以将任何数据理解为 位数组 (bit array)。当然,需要强调,这里的数组是指一个连续空间中的数组,否则就与我们此前的抽象不一致了。
然而,我们留意上述的“某种相同数据”这一抽象限制条件,也就意味着,我们必然会面临“连续空间中包含 某几种不同数据 ”的需求。我们做出这一“必然”判断的原因,是我们的需求总是问题的全集而非某个部分(所谓可能出现的,必将出现)。因此对问题的某一个分类中的所有可能性施以数据抽象,则它必然可以表达问题的全集,以及满足其背后的全部需求。推论上述逻辑:
- 设定:在连续空间(S)中,要么包含同一种数据(m),要么包含不同种数据(n);
- 如果存有混杂,则可以将它分解为多个连续的连续空间(Si),使(Si) 符合上述设定;
- 如上,总是可以用m与n来表示所有数据,并保持它们在空间上的连续性,亦即是S。
结构体(struct type) 指的就是包括 某几种不同数据 的连续空间 11 。这一概念是对数组的补充,他们一起构成了“用基础数据类型”来复合其他类型的全部可能性。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论