复合数据类型和数据结构有什么区别?

4

我读到C语言中的字符数组是一个复合数据类型,因为它是一系列字符,但在Java中String是一个类,而维基百科称类是数据结构,这让我感到困惑。

5个回答

8
“数据结构”是理论计算机科学中的一个非常通用的术语。任何一种用于组织可被机器处理的数据的技术都可以被视为数据结构。即使是单个机器整数也是一个数据结构,因为比特位可以有多种不同的解释方式。但是,最常见的“数据结构”通常是指应用于大量数据的组织方法,例如二叉树、哈希表、平坦数组或链表。而且,通常人们讨论数据结构时会以通用术语为主,而不是针对某个特定的编程语言。
“复合数据类型”是C及相关语言的专业术语,意思是“任何不是机器数字的语言数据类型”,或多或少地。复合数据类型是数据结构,但并非所有数据结构都是复合数据类型——机器数字太简单了,不能算作复合数据类型,而复杂的数据结构往往是由几个复合数据类型组成的。
“类”是面向对象编程语言的专业术语,指的是定义数据和“方法”以操纵数据的数据类型。在C++中,所有类类型都是复合数据类型,但并非所有复合数据类型都是类类型(其他类型是“普通旧数据”或“POD”类型)。
“字符串”是一个泛指数据结构,用于存储表示文本的一系列小机器整数。几乎每种编程语言都有字符串的概念,但没有两个编程语言的字符串是相同的。字符串在定义上是数据结构。在C家族中,由于单个机器整数不足以容纳多个字符,因此字符串始终是复合数据类型。在面向对象编程语言中,字符串通常是类类型,但并非总是如此。
希望这至少让你进入了一个更高级的困惑状态。

3

数据类型指的是可以用变量表示的任何东西。 成员是一个变量。 方法是一个函数。 基本类型中没有成员和方法。 结构体由基本类型和其他结构体的组合构成。 类是包含方法和成员的结构体。 数组是任何数据类型的数组,包括基本类型、结构体或类。


2

我认为“复合数据类型”和“数据结构”基本上是同一种东西:一个由可区分部分组成的数据片段,与char或byte这样的简单或基本数据类型不同,后者不由较小的数据类型组成。


0

每种数据类型都是一种数据结构,但并非每种数据结构都是一种数据类型。

数据类型是能够存储数据的实体。 最简单形式的数据类型是原始数据类型。 由原始数据类型组成的更复杂的数据类型是复合数据类型。

当数据结构保存存储实体之间的关系时,数据结构与数据类型不同。 在这里,实体是数据类型。但是,数据类型以及它们之间的关系形成了数据结构。


0

复合类型是由多个基本类型(如字符、整数、布尔等)派生而来的。这可以通过多种方式实现。它们被组合的方式称为数据结构。

因此,在 C 中,您的字符数组是一种复合数据类型和数据结构。通常,为了使您的生活和周围人的生活更轻松,您可以将数据结构视为一个通用术语。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接