2

我看过一些关于基本数据类型原始数据类型内置数据类型的定义。但我还不确定,我怎么能说数据类型是基本的或原始的,甚至是原始的基本的!
是否有任何好的定义可以帮助以这种方式指定数据类型的类型?

维基百科说原始数据类型由基本数据类型和内置数据类型组成。foldoc.org说:“有些类型是原始的 - 语言内置,没有可见的内部结构”。

我真的很困惑!

4

2 回答 2

2

引用 Michael L. Scott 的书,Programming Language Pragmatics,第 7.1.1 节(类型的定义),p.322:

至少有三种方式来思考类型,我们可以称之为指称的、构造的和基于抽象的观点。[...] 从构造的角度来看,类型要么是一小部分内置类型(整数、字符、布尔值、实数等;也称为原始类型或预定义类型),要么是复合类型通过将类型构造函数recordarrayset)应用于一个或多个更简单的类型而创建。(“构造函数”这个术语的使用与 C++ 和 Java 的初始化函数无关。[...]

因此,从理论上的 POV 来看,这些术语(原始内置预定义——我也将添加基本)或多或少都是同义词,并且与复合类型相比,它们都是可以理解的,复合类型是使用它们构建的,可能在一种递归方式,某种“对类型的操作”(一个 char 数组一个指针集合一个记录列表,每个记录都由一个 float 和一个 string 组成,等等)

我同意@KeithThompson 的观点,从实际的 POV 来看,每种语言都将使用(其中一些)这些术语,为它们分配非常具体的含义,因此您必须浏览特定的语言规范才能了解在该上下文中的含义。

于 2013-08-21T06:47:14.267 回答
1

内置数据类型是一种语言中可用的数据类型,而不是从库或您编写的代码中添加的数据类型。通常,这是int或的情况string

正如Wikipedia所说:“关于是否应将非基本的内置类型视为‘原始’的意见各不相同”,原始数据类型的定义并不十分清楚。在我个人看来,原始数据类型基本数据类型相同,即没有结构或子组件的数据类型。同样int是一个很好的例子,但string有子组件(构建它的不同字符)。另一种非原始类型是file,因为它具有文件名或路径等结构。

于 2013-08-16T18:25:36.900 回答