【发布时间】:2011-06-05 12:55:25
【问题描述】:
我读到 C 中的字符数组是一种复合数据类型,因为它是一个字符序列,但是在 Java 中,字符串是一个类,而 Wikipedia 说类是数据结构,我很困惑。
【问题讨论】:
标签: arrays data-structures types
我读到 C 中的字符数组是一种复合数据类型,因为它是一个字符序列,但是在 Java 中,字符串是一个类,而 Wikipedia 说类是数据结构,我很困惑。
【问题讨论】:
标签: arrays data-structures types
“数据结构”是理论计算机科学的一个非常笼统的术语。任何组织机器可操作数据的技术都可以被认为是一种数据结构。即使是单个机器整数也是一种数据结构,因为解释位的方式不止一种。大多数情况下,虽然“数据结构”用于指代应用于大型数据集合的组织:例如,二叉树、哈希表、平面数组或链表。通常,当人们谈论数据结构时,他们是用通用术语来表达的,而不是特定于特定的编程语言。
“复合数据类型”是 C 和相关语言的一个术语,意思是“任何不是机器号的语言数据类型”,或多或少。复合数据类型是数据结构,但并不是所有的数据结构都是复合数据类型——机器编号太简单而不能成为复合数据类型,一个复杂的数据结构很可能是由几个复合的数据类型。
“类”是面向对象编程语言的一个术语,指的是一种数据类型,它不仅定义了数据,还定义了操作数据的“方法”。在 C++ 中,所有类类型都是复合数据类型,但并非所有复合数据类型都是类类型(其他是“普通旧数据”或“POD”类型)。
“字符串”是数据结构的通用术语,它包含一系列以某种方式表示文本的小型机器整数。几乎每种编程语言都有一些字符串的概念,但没有两个是相同的。根据定义,字符串是数据结构。在 C 系列中,字符串始终是复合数据类型,因为 单个 机器整数不足以容纳多个字符。在面向对象的编程语言中,字符串通常(但不总是)是类类型。
我希望这至少会让你陷入更复杂的困惑。
【讨论】:
数据类型是任何可以用来制作变量的东西。 成员是一个变量。 方法就是函数。 基类型没有成员,也没有方法。 结构由基本类型和其他结构的组合组成。 类是包含方法和成员的结构。 数组是任何数据类型的数组,可以是基类型、结构或类。
【讨论】:
好吧,我想说“复合数据类型”和“数据结构”几乎是一回事:一段具有可区分部分的数据,而不是简单或基本的数据类型,如 char 或 byte最多更小的数据类型。
【讨论】:
每个数据类型都是数据结构,但也不是每个数据结构都是数据类型。
数据类型是可以保存数据的实体。 最简单形式的数据类型是原始数据类型。 由原始数据类型组成的更复杂的数据类型是复合数据类型
当数据结构与存储的实体以及实体之间保持关系时,它就与数据类型不同。 这里的实体是数据类型。但是数据类型和关系构成了数据结构。
【讨论】:
复合类型派生自一种以上的原始类型(字符、整数、布尔值等)。这可以通过多种方式完成。它们的组合方式称为数据结构。
因此,C 中的字符数组是复合数据类型和数据结构。一般来说,为了让您和您周围的生活更轻松,您可以将数据结构视为一个通用术语。
【讨论】: