Types 低级和高级数据类型

Types 低级和高级数据类型,types,programming-languages,Types,Programming Languages,有人能解释一下在一般编程环境中什么是低级和高级数据类型吗。 来自Java的背景,我认为低级是基本类型,如整数、布尔值、字符串等,高级是复合对象类型。 虽然我不太确定这是否是一般的理解,但我在网上找不到一个明确的定义。您的理解通常是正确的,但它也非常依赖于您特定的代码堆栈 例如,将字符串列为基本类型;但在C语言中,例如,字符串通常只是一个字符数组,而功能齐全的字符串(如Java中的字符串)是一个非常高级的对象。至少,比您可以轻松定义的某些structs更高的级别,如复数,或像typedef str

有人能解释一下在一般编程环境中什么是低级和高级数据类型吗。 来自Java的背景,我认为低级是基本类型,如整数、布尔值、字符串等,高级是复合对象类型。
虽然我不太确定这是否是一般的理解,但我在网上找不到一个明确的定义。

您的理解通常是正确的,但它也非常依赖于您特定的代码堆栈

例如,将字符串列为基本类型;但在C语言中,例如,字符串通常只是一个字符数组,而功能齐全的字符串(如Java中的字符串)是一个非常高级的对象。至少,比您可以轻松定义的某些
struct
s更高的级别,如复数,或像
typedef struct{float x,y}点这样的二维点

当然,这很简单,因为Java是比C更高级的语言,所以它的原语比C更高级。最后,这仅仅意味着“高/低”水平只是定义为相对值,有些东西比其他东西更高水平

最终,软件中的所有内容都必须由CPU执行,因此,注意哪些概念是在硬件中实现的,哪些不是

整数、指针、位字段、浮点等是大多数CPU所共有的。其中一些还处理数组,甚至是简单的(C样式)字符串


结构和类型化值通常在代码中是“隐式”的,但不是CPU特性,因此它们的级别稍高,但通常很低,可能没有显式代码来处理它们,只是程序的结构使数据按预期的方式运行。

我想说,“低级别”取决于您的操作系统体系结构,例如C中的“unsigned int”。64位和32位体系结构不同。另一方面,您可以从硬件中提取一些东西。例如,任何类型的无限列表(在haskell中)

您的理解是正确的:低级类型通常是基本类型,高级类型通常是由基本类型或其他高级类型组成的类型。这是粗略的、非正式的类型分类。你从哪里听说过这个词?你应该看看那里的定义。