返回介绍

6.4 有一个起始地址的连续区域 思路下的两种数据类型

发布于 2024-12-15 23:01:46 字数 1304 浏览 0 评论 0 收藏 0

数组(array type) 指的是包括 某种相同数据 (数组元素的类型相同)的连续空间 9 ,它是 顺序地址存储 这一概念的自然延伸 10 。首先我们认为 Byte、Word 等基础数据类型是受位宽限制的顺序地址存储,当我们把位宽限制这一条件去掉——或通过长度值来指定连续区域的大小——之后,就得到了数组的概念。由于它自然延伸了(但未改变) 顺序地址存储 的概念,因此它也可以作用于上述这些基础类型。例如:

  • DWORD,等义于长度为 4 的字节数组;
  • BYTE,等义于长度为 8 的位数组;
  • INT64,等义于长度为 64 的位数组,或长度为 8 的字节数组,或……

基于此,我们也可以用数组这一概念来统一所有的基础类型,这最终可以将任何数据理解为 位数组 (bit array)。当然,需要强调,这里的数组是指一个连续空间中的数组,否则就与我们此前的抽象不一致了。

然而,我们留意上述的“某种相同数据”这一抽象限制条件,也就意味着,我们必然会面临“连续空间中包含 某几种不同数据 ”的需求。我们做出这一“必然”判断的原因,是我们的需求总是问题的全集而非某个部分(所谓可能出现的,必将出现)。因此对问题的某一个分类中的所有可能性施以数据抽象,则它必然可以表达问题的全集,以及满足其背后的全部需求。推论上述逻辑:

  • 设定:在连续空间(S)中,要么包含同一种数据(m),要么包含不同种数据(n);
  • 如果存有混杂,则可以将它分解为多个连续的连续空间(Si),使(Si) 符合上述设定;
  • 如上,总是可以用mn来表示所有数据,并保持它们在空间上的连续性,亦即是S

结构体(struct type) 指的就是包括 某几种不同数据 的连续空间 11 。这一概念是对数组的补充,他们一起构成了“用基础数据类型”来复合其他类型的全部可能性。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文