我读到C中的字符数组是复合数据类型,因为它是一个字符序列,但是在Java中,String是一个类,而维基百科说一个类是数据结构,我很困惑。
答案 0 :(得分:7)
“数据结构”是理论计算机科学的一个非常通用的术语。用于组织机器可操纵数据的任何技术都可以被认为是数据结构。即使是单个机器整数也是一种数据结构,因为可以通过多种方式解释这些位。最常见的是,“数据结构”用于指代应用于大型数据集合的组织:例如,二叉树,哈希表,平面数组或链表。通常当人们谈论数据结构时,他们会用通用术语来表达,而不是特定于特定的编程语言。
“复合数据类型”是C语言和相关语言的术语,意思是“任何不是机器号的语言数据类型”,或多或少。复合数据类型是数据结构,但并非所有数据结构都是复合数据类型 - 机器编号太简单而不能成为复合数据类型,复杂的数据结构很可能是由几个复合数据构建的数据类型。
“类”是面向对象编程语言的术语,指的是不仅定义数据而且定义用于操纵数据的“方法”的数据类型。在C ++中,所有类类型都是复合数据类型,但并非所有复合数据类型都是类类型(其他类型是“普通旧数据”或“POD”类型)。
“String”是数据结构的通用术语,该数据结构包含以某种方式表示文本的小型机器整数序列。几乎每种编程语言都有一些字符串的概念,但其中没有两种是相同的。字符串是定义数据结构。在C系列中,字符串始终是复合数据类型,因为单个机器整数对于多个字符来说不够大。在面向对象的编程语言中,字符串通常(但不总是)类类型。
我希望这至少可以让你更加复杂。
答案 1 :(得分:3)
数据类型是你可以制作变量的任何东西。 成员是变量。 方法是一种功能。 基类型没有成员,也没有方法。 结构由基类型和其他结构的组合组成。 类是包含方法和成员的结构。 数组是任何数据类型的数组,包括基类型,结构或类。
答案 2 :(得分:2)
好吧,我会说“复合数据类型”和“数据结构”几乎是一回事:一个具有可区分部分的数据,而不是像char或byte这样的简单或基本数据类型小数据类型。
答案 3 :(得分:0)
每种数据类型都是数据结构,但每种数据结构都不是数据类型。
数据类型是可以保存数据的实体。 最简单形式的数据类型是原始数据类型。 由原始数据类型组成的更复杂的数据类型是复合数据类型
当数据结构与实体保持存储的实体之间的关系时,数据结构与数据类型不同。 这里的实体是数据类型。但是数据类型和关系形成了数据结构。
答案 4 :(得分:0)
复合类型派生自一种以上的原始类型(字符,整数,布尔值等)。这可以通过多种方式来完成。它们的组合方式称为数据结构。
因此,您在C中的字符数组是复合数据类型和数据结构。通常,为了使您的生活和周围的生活更轻松,您可以将数据结构视为通用术语。